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

时间:2013-10-24 20:54:26

标签: c++ reference member

我有这个班级

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

};

这个构造函数:

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

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

解决这个问题的好方法是什么?

1 个答案:

答案 0 :(得分:36)

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

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

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