请各位帮小弟我看一下这个有关问题,在别的地方问了好多次了都搞不定,多谢了
请各位帮我看一下这个问题,在别的地方问了好多次了都搞不定,谢谢了
下面的程序,提示引用没有初始化,我知道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;
}
下面的程序,提示引用没有初始化,我知道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;
}