我可以在这样的构造函数中使用默认参数吗
Soldier(int entyID, int hlth = 100, int exp = 10, string nme) : entityID(entyID = globalID++), health(hlth), experience(exp), name(nme = SelectRandomName(exp))
{ }
例如,我希望默认情况下 exp = 10,但如果我在构造函数中提供它,则能够覆盖该值,否则它应该使用默认值。
我该怎么办,我知道我的方法行不通......
如果我在初始化列表中提供任何值,无论我在构造函数中提供的内容都会被覆盖,另一方面,每当我在构造函数中提供一个值时,那么为什么每次我提供一个值时,我首先需要一个默认值用于对象启动...?
我应该使用不同的重载构造函数还是你们有其他想法......?
默认参数只能提供给延伸到参数列表末尾的连续参数范围。简单来说,您可以为 1, 2, 3, ... N 提供默认参数last函数的参数。您无法像上面尝试那样向参数列表中间的参数提供默认参数。要么重新排列你的参数(把hlth
and exp
在最后)或提供默认参数nme
以及。
此外,构造函数初始值设定项列表似乎没有任何意义。通过的意义是什么entyID
and nme
从外部,如果您在构造函数初始值设定项列表中无论如何重写它们的值?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)