我正在尝试执行以下操作:
class FOO {
void bar(int& var = m_var) {
// ....
}
int m_var;
};
为什么这不编译?他们为什么不将其编程到语言中?有没有办法模仿这种行为?
最佳答案
这是不允许的,因为 m_var
是一个成员变量,需要通过对象访问。
如果 m_var
是类的静态成员,它将是 compile successfully 。
一个简单的解决方法是通过 bar()
(它是一个成员函数并且可以访问 m_var
)调用同名的重载函数或另一个成员函数,并通过引用将 m_var
作为参数传递。它将具有您想要实现的相同效果。
关于c++ - 在 C++ 中的函数声明中引用成员变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6862397/