Ich fragte mich, ob ihr mir helfen könnt.Operator = Überladung mit Const Variable in C++
Hier sind meine .h:
Class Doctor {
const string name;
public:
Doctor();
Doctor(string name);
Doctor & Doctor::operator=(const Doctor &doc);
}
und mein Haupt:
int main(){
Doctor d1 = Doctor("peter");
Doctor d2 = Doctor();
d2 = d1;
}
ich den Operator = Funktion tun wollen. Kann mir jemand helfen? Beachten Sie das konstante Mitglied auf Doktor.
************ EDIT: ********* Mein Hauptproblem ist, dass ich möchte, dass eine andere Klasse ein Attribut hat, das ein Doktor ist, wie ein Pacient hat Arzt. Aber ich möchte meinen Doktor wechseln können. Wie ich Arzt A sehe, aber ich möchte Arzt B. Das würde mit einem SetDoctor-Funktion in meiner anderen Klasse (Pacient) getan werden. Wenn ich es wäre, würde ich so etwas sagen:
und dann den Zeiger ändern. Allerdings verwende ich eine Code-Basis von einem des Lehrers gemacht und es die Klasse definiert wie:
class Patient{
Doctor d;
}
Aber ich denke, das ist unmöglich, weil mit einem setDoctor zu tun() in der Patientenklasse würde ich entweder machen eine Kopie oder ändern Sie die Ausgabe selbst. Die erste macht keinen Unterschied und die zweite ist unmöglich wegen der const. Habe ich recht?
Warum machen Sie es const, wenn es sich deutlich ändert? –
Aber es ist nicht initialisiert ... Ich erinnere mich nicht sehr gut, aber ich denke, es kann nicht ändern, sobald initialisiert. – jasonco
Gibt es einen Grund, warum Sie nicht der Kopierkonstruktor sind? –