C++ 类的引用成员初始化问题

代码如下

struct A
{
    int &cnt;
    A(int i=10):cnt(i){}  //这里的 i 不是引用传参
    A(const A &a):cnt(a.cnt){cnt++;} 
};
int main()
{
    A a1(100);
    cout<<a1.cnt<<' ';  // 输出100
    A a2 (a1);
    cout<<a1.cnt<<' '<<a2.cnt<<endl; //输出两个相同的随机数
    a2.cnt=0;
    cout<<a1.cnt<<' '<<a2.cnt<<endl; //输出 0 0
}

输出为

32766 32766

1 1

原本是想在struct A中定义一个引用成员,让A的多个对象共同对cnt进行操作,奇怪的是上面的初始化出了问题,但把cnt重新赋值后,后面的操作就正常了,有大佬能解释一下为什么会有这种现象吗

https://blog.csdn.net/weixin_34289454/article/details/87015126

估计是引用了一个没有声明的内存,里面的值不确定,你可以改变这个值,但是一时间后这个值也是不确定的