c++ 赋值运算符重载为何只能是成员函数?

书上说:当重载()、[]、->或任何赋值运算符时,必须将运算符重载函数声明成类的成员函数。疑问:1、这是为何?2、什么叫“任何赋值运算符”,赋值运算符不就是=么哪里来的任... 书上说:

当重载() 、[ ] 、-> 或任何赋值运算符时,必须将运算符重载函数声明成类的成员函数。

疑问:

1、这是为何?

2、什么叫“任何赋值运算符 ” ,赋值运算符不就是 = 么 哪里来的任何?
展开
 我来答
White_MouseYBZ
2015-05-24 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6385万
展开全部
答1:重载运算符,肯定是扩展了原来的功能,比如+原来的功能就是实数相加,如果重载为复数相加,那相加的目标就得有实数部分也有虚数部分,如果不把重载函数声明为一个复数类的成员函数,调用这个+号函数时编译器怎么能知道这个+号是基本加法的+号还是复数的+号呢?换句话说,运算符重载就是某个确定的范围内扩展运算符的功能,这个特定范围常常就是一个类。

答2:“任何赋值运算符 ”就是指'='、'+='、'-='、'/='、'%='……等等。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式