如有这么两个函数:
1.bool pop(int &value);
2.Matrix operator+(const Matrix&, const Matrix&);//重载加法操作符。
&操作符在变量的前面与在变量的后面有什么区别?引用类型和指针类型的具体区别是什么?

解决方案 »

  1.   

    int &value表示value是一个引用类型
    const Matrix &这里没有变量,表示的是无名的Matrix引用类型
      

  2.   

    “const Matrix&”中的Matrix不是变量,而是类型。
      

  3.   

    &只能在变量的前面,类型的后面。你的两个例子中,前一个是变量,后一个是类型。
      

  4.   

    Matrix是个类型啊!
    引用比指针更安全,因为指针有时候会没有正确初始化或正确赋值,引用没有这样的疑虑。
      

  5.   

    我调用pop(int &top_value);这个函数,top_value参数是怎么样在程序中走的?也就是他的引用流程是什么?俺是菜鸟,难免有说的不太准确的地方。
      

  6.   

    1.bool pop(int &value);
    2.Matrix operator+(const Matrix&, const Matrix&);//重载加法操作符。1. 规范写法: int &value(或指针类的int *pInt),
    "const Matrix&,"只是个缺省形参的函数声明, 在实现的地方一定是以下这样:CXXClass Matrix operator+(const Matrix &matrix_prior, const Matrix &matrix_next)
    {
      ..
      return ..
    }
    所以以上都是在变量前写的.2. C++里新特性增加引用, 是为了更形象,易理解地间接使用指针, 
    因为引用就是靠指针实现的.