Ich habe noch nie einen Kopierkonstruktor geschrieben, also wollte ich, um Schmerzen zu vermeiden, wissen, ob das, was ich kodiert habe, echt ist. Es kompiliert, aber ich bin mir nicht sicher, ob es als Kopierkonstruktor funktioniert.C++ Verwenden von const in einem Kopierkonstruktor?
Auch muss ich const im Kopierkonstruktor verwenden, oder ich kann es einfach fallen lassen. (Was ich an const nicht mag, ist, dass der Compiler schreit, wenn ich einige nicht konstante Funktionen verwende).
//EditNode.h
class EditNode
{
explicit EditNode(QString elementName);
EditNode(const EditNode &src);
}
//EditNodeContainer.h
class EditNodeContainer : public EditNode
{
explicit EditNodeContainer(QString elementName);
EditNodeContainer(const EditNodeContainer &src);
}
//EditNodeContainer.cpp
EditNodeContainer::EditNodeContainer(QString elementName):EditNode(elementName)
{
}
//This seems to compile but not sure if it works
EditNodeContainer::EditNodeContainer(const EditNodeContainer &src):EditNode(src)
{
}
//the idea whould be to do something like this
EditNodeContainer *container1 = new EditNodeContainer("c1");
EditNodeContainer *copyContainer = new EditNodeContainer(container1);
Ihr Kopierkonstruktor tut nichts, was der vom Compiler erzeugte nicht tut. –
Gibt es einen Grund, warum Sie einen benutzerdefinierten Kopierkonstruktor schreiben müssen? In vielen Fällen sollte die Standardeinstellung gut sein. – Philipp
, d. H., Wenn Sie Daten von einem Mitglied und nicht den Zeiger selbst kopieren möchten – kappa