私はこのクラスを持っています
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
が参照するものに割り当てます。