正向声明的类成员的正向声明

Forward declaration of a forward-declared class member

本文关键字:声明 成员      更新时间:2023-10-16

是否可以正向声明在另一个正向声明类中声明的类?

基本上,我有这样的

//A.h
class A
{
...
    struct B
    {
    ...
    };
};

现在我想声明另一个类,比如这个

//Q.h
class A;
struct A::B;
class Q
{
    A::B* Foo();
};

不,不能这样做。要访问A的成员,必须定义它,无论该成员是类型、数据还是函数。