类成员变量使用引用出现错误

来源:互联网 发布:淘宝客返利 编辑:程序博客网 时间:2024/04/30 01:36

代码展示

class A{private:    int &a;public:    A(int k,int n) :a(n) {        cout << a << endl;  //可以正确输出    }    int get_a()    {        cout << a << endl;  //出现未知地址        return 0;    }};int main(){    A a(10,20);    a.get_a();    system("pause");    return 0;}

结果分析

a绑定到局部变量 n上 (即n 的别名) 当A()函数的结束之后 n的生命周期结束 导致a绑定的变量n不再存在 所以出现这样情况

解决方案

扩大 n 的生命周期

public:    int n;    A(int k) :a(n) {        n = k;        cout << a << endl;    }    int get_a()    {        cout << a << endl;          return 0;    }
0 0
原创粉丝点击