Hat der Copy-Konstruktor besondere Zugriffsrechte?
-
Hey Leute,
Ich habe da eine Frage zu dem Copy-Konstruktor.
Den unten aufgeführten Code kann ich nicht kompilieren, da die Ausgabe (Zeile 18 und 19) auf als private deklarierte Variablen zugreifen. Warum kann ich dann im Copy-Konstruktor einfach auf die Variable number (via source.number) zugreifen, obwohl ich mich ja zu diesem Zeitpunkt nicht in der Klasse test befinde. Also muss der Copy-Konstruktor doch eigentlich besondere Zugriffsrechte auf Objekte mit der gleichen Klasse haben, oder?#include <iostream> class Klasse{ private: int number; public: Klasse(){ number = 1; } Klasse(const Klasse &source){ this->number = source.number; } }; int main(){ Klasse test; Klasse test2 = test; std::cout << test2.number << std::endl; std::cout << test.number << std::endl; }
-
Nein, alle Memberfunktionen haben dieses Zugriffsrecht, nicht nur der Copykonstruktor.
-
manni66 schrieb:
Nein, alle Memberfunktionen haben dieses Zugriffsrecht, nicht nur der Copykonstruktor.
Danke.
Habe das gerade mal ausprobiert und alles hat funktioniert.