相关疑难解决方法(0)

朋友访问受保护的嵌套类

我有以下C++代码:

class A {
 protected:
  struct Nested {
    int x;
  };
};

class B: public A {
  friend class C;
};

class C {
  void m1() {
    B::Nested n; // or A::Nested
  }
};
Run Code Online (Sandbox Code Playgroud)

使用g ++ 4.4编译这个片段,无论我在m1中使用B :: Nested还是A :: Nested,都没有区别.Clang接受B::Nested,但如果我不编译A::Nested.这是g ++或clang中的错误吗?

c++ friend

11
推荐指数
1
解决办法
3173
查看次数

标签 统计

c++ ×1

friend ×1