c++ - '' 的构造函数必须显式初始化引用成员 ''

标签 c++ reference member

我有这门课

class CamFeed {
public:
    // constructor
    CamFeed(ofVideoGrabber &cam); 
    ofVideoGrabber &cam;

};

还有这个构造函数:

CamFeed::CamFeed(ofVideoGrabber &cam) {
    this->cam = cam;
}

我在构造函数中收到此错误: '' 的构造函数必须显式初始化引用成员 ''

有什么好办法解决这个问题?

最佳答案

你需要使用构造函数初始化列表:

CamFeed::CamFeed(ofVideoGrabber& cam) : cam(cam) {}

这是因为引用必须引用某些东西,因此不能默认构造。一旦进入构造函数主体,所有数据成员都已初始化。您的 this->cam = cam; 行实际上是一个赋值,将 cam 引用的值分配给 this->cam 引用的任何内容到。

关于c++ - '' 的构造函数必须显式初始化引用成员 '',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19576458/

相关文章:

c++ - 使用 gtest & gmock 验证程序调用

c++ - 为什么 char 数组类型的类成员在成员函数中突然变成 const char 数组类型?

C++ 访问 union 结构中的变量

c++ - Stack walk with inline asm for VC++

c++ - 无法无损地将 rgb 转换为 YCbCr 并返回

c++ - 在 Windows 中检索全局钩子(Hook)链

java - 通过在 Groovy 闭包中通过引用传递参数来动态设置变量

c# - 使用简单 = 的引用问题不同

c# - 如何在不重新编译 VS2008 中的解决方案的情况下热交换引用的 DLL?

c++ - C/C++ - 从封闭类继承的嵌套类