参考类型静态数据成员的问题可能是编译器错误

Issues with Reference Type Static Data Member, could be compiler bug

本文关键字:编译器 错误 问题 类型 静态 数据成员 参考      更新时间:2023-10-16

我想类的静态数据成员可以是以下初始化为全局变量的参考类型:

#include <iostream>
#include <stdio.h>
const unsigned int global =0x1fee;
struct K {
    int a;
    static const  int & iref;
};
const int & K::iref=global;
int main()
{
    printf("%dn",K::iref);
    return 0;
}

但是在我的VC 测试中,它可以编译但执行时会产生异常。它只是VC 的错误吗?我做错了吗?

您只需要机会

const int&amp;K :: iref

to

k :: iref

,当您声明时,您需要初始化变量,而不是超出其范围。