- 学习重载运算符时,对下面的代码有疑惑
Complex Complex::operator +(Complex &c2)
{return Complex(real+c2.real,imag+c2.imag)
}
这个是Complex类的成员函数的定义,那么+号左边的real和imag ,用了this 指针,相当于
this->real
this->imag
这个很好理解,我不能理解的是 + 号右边的 c2.real 和 c2.imag
为什么c2.私有成员是合法的?
后来看到这么一句话:
实践证明,类(class)私有成员可以被类成员函数访问,不区分成员在哪个实例(instance)里。
也就是说,在类内部的成员函数中,哪怕是传入的对象,也可以直接访问该对象的私有成员。(前提是该对象必须是本类型的一个对象)
这样类对象可以直接访问私有成员就合情合理了,而且这么做也确实是方便的。