类中定义结构体

#include <iostream>

using namespace std;

class A
{
  private:
    struct B
    {
        int a;
    };

  public:
    B m;
};

int main()
{
    A s;
    s.m.a = 10;
    cout << s.m.a << endl;
}

输出

10

说明:虽然B是private,但由于m是类成员,可以访问private,所以s.m.a是OK的

int main()
{
    A::B t;
    t.a = 5;
    cout << t.a << endl;
}

编译不通过

error: ‘struct A::B’ is private

说明:因为B是private,所以外部不能直接访问B,所以需要将B改为public,即可

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容