class C{
...
public: friend C operator + (C&, C&);
...
};
C operator + (C& C1, C& C2){
....
}My question: 
why use C& as parameter? Can I use ...operator + (C,C)?

解决方案 »

  1.   

    C& C1表示对C的一个实例的引用,相当于传递一个指针进去。
    C仅仅表示一个类的抽象概念,没有实例,如何使用。
      

  2.   

    operator(c,c)也可以
    在c比较巨大只是会增加程序的开销
      

  3.   

    同意ccom(ccom) ,operator(c,c)也可以,不过调用的时候会在stack中创建两个c的实例,调用两次构造函数,并把参数值复制过去,开销很大。如果要用这个形式,必须定义构造函数:
    C(const C & ins);operator(C&,C&)只把参数的地址压入stack,开销很小。所以应当使用operator(C&,C&)。