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

Why are no get functions needed in assignment operator overloads?

本文关键字:get 函数 不需要 赋值运算符 重载 为什么      更新时间:2023-10-16

我只是想知道为什么会这样。这只是两个对象的类内部重载定义的神奇品质吗?我一直在想,一个函数可以访问两个对象的成员数据,这让我觉得有点奇怪。

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的成员。访问不是基于实例的,而是基于类的。

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