Hallo,
einen Copy- und Assignment-Operator gibt es default-maessig in jeder Class, genauso wie den Standard Constructor sowie Destructor. Die beiden Operatoren kopieren aber nur komponentenweise. D.h., members die pointer auf Objects sind, werden auch kopiert, aber nur der zeiger, aber nicht das Object, das dahinter steht. Dafür muss man dann in C++ selber sorgen.
Wie diese realisert werden und auch z.B. der &-Operator, haengt von der Construction Deiner Class ab. Operatoren und Konstruktoren koennen sowohl private, protected oder public sein. Das haengt vom Design ab und was man dem Anwender der Klasse erlauben will.
Z.B. ist der Konstruktor eines Singleton-Pattern immer strengsten private, da die Klasse selbst für die verwaltung der nur einen Instanz zu sorgen hat. Man kann ihn auch protected machen, allerdings ist eine Ableitungs-Hierachie hier nicht ganz einfach. Bei Vererbung ist bei operatoren aufzupassen, damit in abgeleiteten klassen keine Inkonsitenzen erzeugt werden. Des weiteren ist bei Konstruktoren mit default-parameters das schuesselwort explicit zu verwenden, damit implizites casten ausgeschlossen wird. Nur opeartors die virtual sind dürfen überschrieben werden und es ist darauf zu achten, ob man überschreibt, überdeckt oder überlädt. Der Destruktor sollte in jeder class immer virtual sein.
Ciao