请各位帮小弟我看一下这个有关问题,在别的地方问了好多次了都搞不定,多谢了

请各位帮我看一下这个问题,在别的地方问了好多次了都搞不定,谢谢了
下面的程序,提示引用没有初始化,我知道c++中规定成员变量如果是引用的话,必须初始化.
请问应当如何解决?谢谢了
class   B
{
    public:
    B();
    B(int);
    int   &yy;
};
B::B(int   a):yy(a)//我试着像普通变量那样初始化引用变量,但提示错误,请问如何修改呢?
{
}

int   main(int   argc,   char*   argv[])
{
                B   temp(20);
                cin.get();
                return   0;
}


------解决方案--------------------
引用类型跟指针的一个区别就是不能存在空引用(null reference)这样的东西,引用必须指代某个对象。

试了一下,楼主的程序在vc下编译可以通过,但是测试无法正确初始化

#include <iostream.h>

class B
{
public:
B();
B(int);
int &yy;
};
B::B(int a):yy(a)
{
}

int main(int argc, char* argv[])
{
B temp(200);
cout < <temp.yy < <endl;//输出为一个随机值
cin.get();
return 0;
}

一下是建议的一种方式,增加一个成员变量,而引用指向该变量,不过这样感觉有点多余了,^_^

#include <iostream.h>

class B
{
public:
B();
B(int);
int xx;
int &yy;
};
B::B(int a):yy(xx),xx(a)//初始化xx,用xx来初始化yy
{
}

int main(int argc, char* argv[])
{
B temp(20);
cout < <temp.yy < <endl;//输出为20
cin.get();
return 0;
}