【发布时间】:2015-01-15 23:04:37
【问题描述】:
除了手动重载相应的成员函数并以该成员为参数调用第一个重载之外,还有其他方法吗?
我正在尝试类似的东西
class test
{
string t1="test";
testfun( string& val = this->t1 )
{ /* modify val somehow */ }
};
(测试一下:http://goo.gl/36p4CF)
目前我想这不应该工作没有技术原因。
- 除了重载和手动设置参数外,是否有其他解决方案?
- 为什么这不起作用,是否有技术原因?
【问题讨论】:
-
只使用“test”,它不会降低性能或增加内存使用量,因为它会保持不变。
-
@self:但
t1不是恒定的;所以用一个常量替换它不一定会做同样的事情。 -
我的意思是使用字符串文字“test”
-
@self:是的,我知道。这与发布代码的意图不同,即使用成员变量的当前值,而不是常量值。
-
“测试它”链接格式严重错误。您正在使用构造函数作为测试函数,这似乎是个坏主意。并且该函数修改了参数,但您使用
const char*(文字字符串)调用它。提供MCVE时要小心
标签: c++ c++11 default-value overloading