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

达人帮忙解释一下

caoaihua3 发布于 2008-03-19 15:42, 479 次点击
假设一面一个类的定义,
class Test  
{  
    public:  
        Test(int a = 0)  
        {  
            Test::a = a;  
        }  
        friend Test operator +(Test&,Test&);  
        friend Test& operator ++(Test&);  
    public:  
        int a;  
};  
这里面有两个函数,一个是
friend Test operator +(Test&,Test&);
另一个是
friend Test& operator ++(Test&);
首先还是想请你帮忙解释一下这两句话,主要是前面的那个"Test "与后同的那个"Test&",
后面多出来的那个&是什么意思啊,为什么前一句不写成:
friend Test& operator +(Test&,Test&);
谢谢
1 回复
#2
sunkaidong2008-03-19 15:52
第一个问题:
    第一个是返回值的类型...第一表示参数是引用...
第二个问题:
  由于是友员的原因所以双目运算符要把两个参数都列出来,
   ++是单目运算符,所以只要一个参数;
  如果不是友员..只需要一个参数就可以,因为另一个函数就是自己..用this指代.
  还有小心vc6.0的自身问题..会运行有错..即使没语法错误...
1