class Test{
int &b; // no error, can compile
};
int main() {
int &b; // error: 'b' declared as reference but not initialized
}
为什么我不能在主函数中使用int&b,但是可以在Test类中使用它?
引用必须在开始存在时绑定到某物。
在类中,声明指定该类的每个实例都应具有此引用。每个此类引用在创建其类实例时就开始存在。此时,如果尚未在声明中初始化引用(而您的引用尚未初始化),则该类中的某些构造函数必须通过构造函数的成员初始化列表来对其进行初始化。
在函数中,随着执行通过声明,引用开始存在。因此,必须在此时将其初始化。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句