我正在尝试执行以下操作:

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/

10-11 22:06
查看更多