COne(int a):x(a),r(x){}这样的结构,不知道大家能否为我解释哈?
关于常数据成员的初始化问题,这里的r前为什么要取地址?#include "stdafx.h"#include <iostream.h>
class COne
{
public:
COne(int a):x(a),r(x)
{}
void print();
const int &r;//为什么这里要取地址啊???????????
private:
const int x;
static const int y;
};const int COne::y=10;
void COne::print()
{
cout<<"x="<<x<<",y="<<y<<",r="<<r<<endl;
}void main()
{
COne one(100);
one.print();
}

解决方案 »

  1.   

    那个&不是地址,是引用
    就是因为那个r是引用,所以必须在初始化时就让它指向一个变量.这就是COne(int a):x(a),r(x)的原因.
    其中r是一个指向变量x的引用!!!
      

  2.   

    COne(int a):x(a),r(x){}
    是C++函数的初始化列表... 可以百度下它的用法...意思就是x=a,r=x&在这里是表引用的意思...
    说明r是一个int变量的引用.. 你可以参看下C++语法书上的解释..