38

我有这门课

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

};

而这个构造函数:

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

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

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

4

1 回答 1

55

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

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

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

于 2013-10-24T20:57:30.743 回答