鸡啄米
鸡啄米:C++编程入门系列之四十六(多态性:运算符重载为类的成员函数)›评论
-
17. 飞鸽:
同样存在楼上的疑问。2013/8/28 11:59
-
16. 大辉辉:
最近发现了这里,然后一直在看,刚看到这一章,在VS2010里自己手动写了一个运算符重载,遇到个问题,特向你请教。如下:
class FuShu
{
public:
FuShu(int x=0, int y=0);
FuShu operator +(FuShu ts);
private:
int x;
int y;
};
FuShu FuShu::operator +(FuShu f)
{
int x = this->x + f.x;
int y = this->y + f.y;
return FuShu(x, y);
}
在运算符重载函数,传入的参数是一个FuShu的对象f,按照面向对象封装的思想,函数中的f.x和f.y,由于x和y是FuShu类的私有成员变量,应该不能被FuShu类的对象f调用吧,可是在VS2010下却编译、运行都没问题,不知何故?
还有在你底十四章中,关于拷贝构造函数,有
Point::Point(Point &p)
{
X=p.X;
Y=p.Y;
cout<<"拷贝构造函数被调用"<<endl;
},其中的X和Y也是Point类的私有成员变量,为何也对呢?Nan 于 2014-6-10 10:20:03 回复我觉得你把前面的章节类与对象那里再看下就能理解了JackieZhou 于 2014-10-13 15:05:28 回复私有类型成员只能由本类中的成员函数访问,外部不能访问.而FuShu operator +(FuShu ts)是成员函数。2013/8/7 21:47
-
15. Pzy:
博主..那个时钟的程序运行结果不是这样的吧..因为后自增函数里面有一个++(*this)会调用前自增行数所以没有达到后自增的效果吧??我也不知道用this指针的方法要怎么写..请教一下.2013/5/18 23:09
-
14. 秀才:
Clock& operator ++();后的&有什么意义啊,好像不要也可以吧
鸡啄米 于 2012-09-10 23:26:35 回复带&说明返回的是引用类型,也就是返回对象本身,如果不加&则会将返回值拷贝给一个临时对象,这只是一个拷贝而不是原对象了。
Pzy 于 2013-05-18 23:13:41 回复那为什么后自增那个函数没有用Clock& operator ++(int)这个形式?博主后自增的函数里返回一个局部的变量,会不好吧?解释一下额.初学者不是很懂..2012/9/10 18:29
-
13. 鬼片电影:
继续支持个。2012/1/12 17:11
发表评论