【发布时间】:2011-11-24 22:03:58
【问题描述】:
我必须编写带有两个默认参数的构造函数。
func(int arg1 , char* arg2 = "arg2", int arg3 = 1) //example
向我提供了调用构造函数并为arg1 和arg2 提供值的场景,而arg3 预计将使用默认值。然后实例化另一个对象,并为arg1 和arg3 赋予一个值,并且预计将使用arg2 的默认值。
现在的问题是,您“不能跳过”默认参数是我从文本和在线阅读的内容。据说是根据重载的可能性对默认参数进行排序,但是该场景使用了一个默认参数,而另一个没有使用。这个问题的提示告诉我重新排序参数/参数。但是,我做的再多的重新排序似乎都无法解决这个问题。
此外,不能使用重载的构造函数。这必须由一个构造函数完成。
那么如何做到这一点呢?我被难住了,为此有点疯狂:(
【问题讨论】:
-
您不能在 C++ 中使用单个函数定义来执行此操作。鉴于任何其他解决方案都违反了您所拥有的奇异约束,您想要的都是不可能的。也许您可以使用其他语言。
-
你不能使用
vector的object's? This way you could pass what you wanted and sort what wasn't passed based onnull` 条目。 -
是否允许额外的构造?例如like this
-
你可以使用额外的函数(不是构造函数)吗?
标签: c++ parameters default