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

时间:2014-04-14 23:41:55

标签: 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[arraySize];    // no get functions needed
    for (int i = 0; i < arraySize; i++){
        theArray[i] = a.theArray[i];
    }
}

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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