int operator + (int &pi, int &pi2)
{
return (pi) + (pi2);
}
编译出现error C2803: 'operator +' must have at least one formal parameter of class type
能不能告诉我为什么,谢谢!
...全文
559打赏收藏
(在线等,通过马上给分!!)关于operator重载问题
int operator + (int &pi, int &pi2) { return (pi) + (pi2); } 编译出现error C2803: 'operator +' must have at least one formal parameter of class type 能不能告诉我为什么,谢谢!
你的想法不错,但是却不能这样做,因为你不是真正意义上的运算符重载,而是改变了其最原始的意义,当然是不允许的,比如:int n = 100; int *i = &n; int m= 10;
int *j = &m;
正常情况下:int result = i + j 会是什么?要知道,i,j 不是对象,而是基本的数据类型(long),呵呵,不会引发你所谓的重载,结果得到了直接转型,即result = &m + &n,结果什么,当然是两个地址的和了