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. 🙂


Anmelden zum Antworten