Max*_*xpm 5 parameters d member-functions member-variables default-arguments
我正在尝试创建一个类,用户可以在其中修改成员变量以更改其成员函数的默认参数.
class Class
{
public int Member;
public void Method(int Argument = Member)
{
// This compiles fine, until I try to actually use
// the method elsewhere in code!
// "Error: need 'this' to access member Member"
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的解决方法是使用幻数,这显然不太理想.
public void Method(int Argument = 123)
{
int RealArgument;
if (Argument == 123) RealArgument = Member;
else RealArgument = Argument;
}
Run Code Online (Sandbox Code Playgroud)
有更好的方法,还是我坚持使用这种"黑客"解决方案?
是的,忘记默认参数.
class Class
{
public int Member;
public void Method(int Argument)
{
...
}
public void Method()
{
Method(Member);
}
}
Run Code Online (Sandbox Code Playgroud)
这里不需要欺骗.