C++ 为什么赋值运算符重载中不需要get函数?

C++ 为什么赋值运算符重载中不需要get函数?,c++,operator-overloading,assignment-operator,C++,Operator Overloading,Assignment Operator,我只是好奇为什么会这样。这仅仅是重载定义的神奇性质,它位于两个对象都是由其组成的类中吗?我在想这个问题,我觉得有点奇怪,一个函数可以访问两个对象的成员数据 myClass& myClass::operator= (const myClass& a){ // shallow copy arraySize = a.arraySize; // no get functions needed // deep copy theArray = new int

我只是好奇为什么会这样。这仅仅是重载定义的神奇性质,它位于两个对象都是由其组成的类中吗?我在想这个问题,我觉得有点奇怪,一个函数可以访问两个对象的成员数据

myClass& myClass::operator= (const myClass& a){
    // shallow copy
    arraySize = a.arraySize; // no get functions needed

    // deep copy
    theArray = new int[arraySize];    // no get functions needed
    for (int i = 0; i < arraySize; i++){
        theArray[i] = a.theArray[i];
    }
}

访问权限基于类,您在成员函数中使用的对象不会限制您的访问。

访问权限基于类,您在成员函数中使用的对象不会限制您的访问。

myClass可以访问myClass的成员。访问不是基于实例,而是基于类。

myClass可以访问myClass的成员。访问不是基于实例,而是基于类