Hier ist mein Code:Kann nicht Standard-Zuweisungsoperator erzeugen, wenn ein Klassenmitglied ist eine Referenz (in C++)
class NO {
public:
NO(std::string& name):nameValue(name){};
private:
std::string& nameValue; // this is now a reference
};
int main(){
int b=10,c=20;
int& d=b;
d=c;
std::string p="alpha", q="beta";
NO x(p), y(q);
x=y;
return 0;
}
ich den Fehler:
"non-static reference member ‘std::string& NO::nameValue’, can’t use default assignment operator"
Warum kann ich nicht wieder -zuweisen Sie das Objekt mit einem Referenzelement, wenn ich das gleiche mit einem eingebauten Typ tun kann?
dank
Ich denke, das sollte funktionieren, aber ... mit welcher Semantik? Was müssen wir erwarten? 'x.nameValue' muss auf' y.nameValue' zeigen ODER 'x.nameValue' muss den Wert von' y.nameValue' kopieren? (Das wäre das gleiche wie 'p = q') –