C ++类方法返回不同的类型

时间:2016-04-05 14:00:19

标签: c++

我在类中有一个返回字符串向量的方法。很简单。但有时说我希望整个字符串回来,解开?但是使用相同的方法。

由于获取数据的方法非常复杂,我目前使用该方法返回原始字符串,然后将其解析为main中的向量,如果必须的话。或者,如果想要只使用不同的返回类型复制方法。

使用一种方法有更优雅的方法吗?

2 个答案:

答案 0 :(得分:1)

对不起伙计们,在发布这个之后,我想出了怎么做。使得获取数据的复杂方法变为私有,设置两个调用它的公共方法,并返回不同的类型。关键在于保持从字符串集合转换为向量的转换。会隐藏在课堂上。

有时谈论问题会有所帮助。单靠这个工作,没有人可以交谈。

谢谢你们,信不信由你,你甚至不知道它就帮助过。 :)

答案 1 :(得分:1)

通常不可能有两个具有相同名称的功能,这些功能仅因返回类型而不同。从狭义上讲,我看到了解决这一局限的以下主要可能性:

  • 这类问题的一般解决方案是将引用作为参数更改为函数的副作用。实际返回值是一个简单的bool或整数,表示成功。在这里,您将传递对最初为空的向量的引用;是否解析和拆分字符串将由布尔返回值指示,并且解析的结果 - 如果它发生 - 将被放入引用的向量中。
  • 像以前一样返回一个向量;空向量表示没有发生解析。此解决方案意味着调用者可以访问原始字符串,例如,因为获取字符串并解析它在两个函数中分开。

从更广泛的意义上讲,这只是一个设计问题,正如您刚刚发现的那样。您可以获取,检查,并且 - 仅当检查表明它是必要的时 - 在单独的步骤中解析数据,以便您知道要调用哪个函数以及如何处理每个点的数据。 Divide et impera,编程之道。