注册 登录
编程论坛 C++教室

【求助】运算符重载中的私有成员访问

lucky_boy 发布于 2008-04-11 17:15, 1415 次点击
运算符重载如下:
CComplexNum CComplexNum::operator + (const CComplexNum & TNum) const
{
    return CComplexNum(realPart + TNum.realPart, imagePart + TNum.imagePart);    
}
其中 realPart 和 imagePart 为私有成员变量,定义如下:
private:
    double realPart;
    double imagePart;
问:对象TNum为什么可以直接访问私有成员realPart, imagePart ?(TNum.realPart, TNum.imagePart)
4 回复
#2
sunkaidong2008-04-11 17:54
运算符重载也是成员函数..同时要知道一个问题,在成员函数里面是可以访问私有成员的...用类名和用this指针没有区别..
#3
lucky_boy2008-04-11 18:16
你说的没错
但是TNum是成员函数定义的形参对象啊
我问的是形参对象访问私有成员:TNum.realPart, TNum.imagePart(我问的是这儿)
而不是成员函数访问私有成员啊
对象怎么可以访问私有成员呢?
#4
sunkaidong2008-04-11 18:26
首先你定义的是引用,它是实参数的别名...在类的成员函数中是可以访问类的私有成员的...注意的是这个时候要用对象名字区别开,这个和用this指针是一样得...建议看看java里面就有这个例子..在成员函数里面通过对象访问私有成员
#5
lucky_boy2008-04-11 18:33
这样啊
嗯,基本上搞懂了
再次感谢
1