代码之家  ›  专栏  ›  技术社区  ›  xmllmx

为什么C++中不允许将类型别名作为友元类名?

  •  1
  • xmllmx  · 技术社区  · 2 年前
    class A {    
    };
    
    class B {
        using C = A;
    
        // Compilation error: 
        // Type alias 'C' cannot be referenced with a class specifier 
        friend class C;    
    };
    

    为什么C++中不允许将类型别名作为友元类名?

    背后的理由是什么?

    1 回复  |  直到 2 年前
        1
  •  2
  •   user12002570    2 年前

    为什么C++中不允许将类型别名作为友元类名?

    您错误地认为类型别名不允许是朋友。别名交友的正确语法 C friend C; 而不是 friend class C; .

    当你写的时候 朋友类C; 您正在创建一个名为的全局类 C 的朋友 B 。您只需要删除 class kewyord让化名成为朋友。