如何在不与好友或声明指针友好的情况下在类主体中前向声明未嵌套的类

xinaiz

我知道在类主体中声明未嵌套类的两种方法。

首先是:

class A
{
    friend class B; // B is forward-declared + friend
};

第二个是:

class A
{
    class B* ptr; // B is forward-declared + pointer
};

可以在类主体之外预先声明一个类,但是由于某些原因,让我们忘记此选项;

因此,我想声明这样的成员:

class A
{
    /* somehow declare B in the body*/
    B* getInstanceB();
};

值得一提的是:声明了一个指针:

class A
{
    class B* pointer;
    B* getInstanceB(); //fine
};

与朋友一起声明:

class A
{
    friend class B;
    B* getInstanceB(); //GCC 5.3.0 issues error, MSVC compiles
};

我很遗憾没有这样的前向声明语法:

class ::[optional-namespace::]ClassName;

这将区分嵌套类的正向声明和未嵌套的类的正向声明。是否可以通过其他方式在当前标准中执行此操作?

Brian Bi

要向前声明一个B在的类定义内命名的类,A而不必将该类嵌套在中A,则可以执行以下操作:

class A {
    typedef class B B;
    // do something with B
};

可以在这里找到解释

实际可行的演示:http : //coliru.stacked-crooked.com/a/27913ce45a572d36

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在类定义中声明指向要定义的类的指针

来自分类Dev

如何声明指向类对象的指针的矢量?

来自分类Dev

在实现类之前声明指针的麻烦

来自分类Dev

模板方法访问前向声明的类仅在没有此指针的情况下无法编译

来自分类Dev

类中的C ++前向声明类

来自分类Dev

关于如何在C中声明指针的困惑

来自分类Dev

为什么gcc无法从其前向声明中检测到好友类名称空间?

来自分类Dev

如何实现模板类的前向声明

来自分类Dev

如何在 PhpStorm 中不混合类声明的情况下附加项目?

来自分类Dev

在同一个类中定义的这两个函数如何在不进行前向声明的情况下彼此调用?

来自分类Dev

如何在模板类中声明好友用户定义的文字运算符?

来自分类Dev

如何在模板类中声明好友用户定义的文字运算符?

来自分类Dev

typedef类的前向声明

来自分类Dev

typedef类的前向声明

来自分类Dev

使用前向声明类中的友元函数前向声明的单例类

来自分类Dev

C ++ 17是否允许嵌套类的前向声明?

来自分类Dev

我们如何在没有任何JavaScript的情况下在QML中声明枚举?

来自分类Dev

如何声明指向指针数组的指针

来自分类Dev

如何在D lang中声明指向模板函数的指针?

来自分类Dev

如何在C中声明指向struct的指针数组,然后使用它?

来自分类Dev

如何在D中声明指向非常量/可变数据的const指针?

来自分类Dev

如何在D中声明指向非常量/可变数据的const指针?

来自分类Dev

声明指针类型?

来自分类Dev

如何解决这个前向类声明问题?

来自分类Dev

类中的枚举前向声明是否可能?

来自分类Dev

在多次调用的函数中声明指针

来自分类Dev

如何在Java Nashorn中声明类?

来自分类Dev

如何在类函数中声明const

来自分类Dev

嵌套类的静态对象可以在没有类定义的情况下声明

Related 相关文章

  1. 1

    在类定义中声明指向要定义的类的指针

  2. 2

    如何声明指向类对象的指针的矢量?

  3. 3

    在实现类之前声明指针的麻烦

  4. 4

    模板方法访问前向声明的类仅在没有此指针的情况下无法编译

  5. 5

    类中的C ++前向声明类

  6. 6

    关于如何在C中声明指针的困惑

  7. 7

    为什么gcc无法从其前向声明中检测到好友类名称空间?

  8. 8

    如何实现模板类的前向声明

  9. 9

    如何在 PhpStorm 中不混合类声明的情况下附加项目?

  10. 10

    在同一个类中定义的这两个函数如何在不进行前向声明的情况下彼此调用?

  11. 11

    如何在模板类中声明好友用户定义的文字运算符?

  12. 12

    如何在模板类中声明好友用户定义的文字运算符?

  13. 13

    typedef类的前向声明

  14. 14

    typedef类的前向声明

  15. 15

    使用前向声明类中的友元函数前向声明的单例类

  16. 16

    C ++ 17是否允许嵌套类的前向声明?

  17. 17

    我们如何在没有任何JavaScript的情况下在QML中声明枚举?

  18. 18

    如何声明指向指针数组的指针

  19. 19

    如何在D lang中声明指向模板函数的指针?

  20. 20

    如何在C中声明指向struct的指针数组,然后使用它?

  21. 21

    如何在D中声明指向非常量/可变数据的const指针?

  22. 22

    如何在D中声明指向非常量/可变数据的const指针?

  23. 23

    声明指针类型?

  24. 24

    如何解决这个前向类声明问题?

  25. 25

    类中的枚举前向声明是否可能?

  26. 26

    在多次调用的函数中声明指针

  27. 27

    如何在Java Nashorn中声明类?

  28. 28

    如何在类函数中声明const

  29. 29

    嵌套类的静态对象可以在没有类定义的情况下声明

热门标签

归档