iedstruct 2021-08-21 10:50 采纳率: 50%
浏览 37
已结题

static修饰后的访问问题


struct Structure1
{
    void Function()
    {

    }
};
struct Structure2
{
    static Structure1 sre;
};
int main()
{
    Structure2 a;
    a.sre.Function();
    return 0;
}

会报错,如下图:

img

这是什么原因?

  • 写回答

1条回答 默认 最新

  • 阿肥哥哥_12138 2021-08-21 11:40
    关注

    因为 static Structure1 sre; 这只是一个声明 并没有定义(初始化)

    #include<iostream>
    using namespace std;
    struct Structure1
    {
        void Function()
        {
            cout << "111" << endl;
        }
    };
    struct Structure2
    {
        static Structure1 sre;
    };
    
       Structure1 Structure2::sre;
    int main()
    {
        Structure2 a;
        a.sre.Function();
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月29日
  • 已采纳回答 8月21日
  • 创建了问题 8月21日