class Oeuvre {
private:
string titre;
Auteur& auteur;
string langue;
[...]
};
class Exemplaire {
private:
Oeuvre& oeuvre;
public:
Exemplaire(Oeuvre& oeuvre) : oeuvre(oeuvre) {
cout << "Nouvel exemplaire de : " << oeuvre.getTitre() << ", " << oeuvre.getAuteur().getNom() << "en " << oeuvre.getLangue() << endl;
}
**Exemplaire(Oeuvre const& autre) : oeuvre(autre.oeuvre) {
cout << "Copie d'un exemplaire de : " << oeuvre.getTitre() << ", " << oeuvre.getAuteur().getNom() << "en " << oeuvre.getLangue() << endl;
}**
~Exemplaire() {
cout << "Un exemplaire de \" " << oeuvre.getTitre() << ", " << oeuvre.getAuteur().getNom() << "en " << oeuvre.getLangue() << " \" a été jeté " << endl;
}
Oeuvre& getOeuvre () const {return oeuvre;}
void affiche () {
cout << "Exemplaire de : " << oeuvre.getTitre() << ", " << oeuvre.getAuteur().getNom() << "en " << oeuvre.getLangue() << endl;
}
};
错误:作品中没有名为“oeuvre”的成员。
Exemplaire 的复制构造函数中存在问题。
如果您想要一个复制构造函数,则复制构造函数必须采用同一类的实例作为参数。所以,改变吧
Exemplaire(Oeuvre const& autre) : oeuvre(autre.oeuvre)
到
Exemplaire(Exemplaire const& autre) : oeuvre(autre.oeuvre)
现在,
autre
是一个 Exemplaire
,它有一个 oeuvre
成员。