天天看點

[008]C/C++系列 | pass by value vs. pass by reference(to const)

class complex
{
public:
    complex (double r = 0, double i = 0)
        : re (r), im (i)  // 初始化進階用法
    { }
    complex& operator += (const complex&);
    double real () const { return re; }
    double imag () const { return im; }
private:
    double re, im;
    friend complex& __doapl (complex*, const complex&);
};
           

pass by value(傳值):

complex (double r = 0, double i = 0)
    : re (r), im (i)  // 初始化進階用法
{ }
           

pass by reference(傳引用):

complex& operator += (const complex&);
           

為什麼推薦傳引用呢?

  • double 8位元組
  • 指針 4位元組

注意:

當然傳char的時候(1位元組),可以靈活應用!!! 

上面舉例:

{
    complex c1(2,1);
    complex c2;

    c2 += c1;
    cout<<c2;
}
           

 除了上面以外還得注意還得注意什麼?

看一下上面例子:

complex& operator += (const complex&);
           

const 哪裡是一個值得注意的點!!!

讓其成為常量,函數裡面不可以改變其的值!!!

繼續閱讀