J'ai cette classe
class CamFeed {
public:
// constructor
CamFeed(ofVideoGrabber &cam);
ofVideoGrabber &cam;
};
Et ce constructeur:
CamFeed::CamFeed(ofVideoGrabber &cam) {
this->cam = cam;
}
J'obtiens cette erreur sur le constructeur: le constructeur de '' doit initialiser explicitement le membre de référence ''
Quelle est la bonne façon de contourner ce problème?
Vous devez utiliser la liste d'initialisation du constructeur:
CamFeed::CamFeed(ofVideoGrabber& cam) : cam(cam) {}
En effet, les références doivent faire référence à quelque chose et ne peuvent donc pas être construites par défaut. Une fois que vous êtes dans le corps du constructeur, tous vos membres de données ont été initialisés. Votre this->cam = cam;
line serait vraiment une affectation, affectant la valeur référencée par cam
à tout this->cam
fait référence à.