使用new关键字转发声明和typename

pan*_*ami 1 c++ namespaces forward-declaration fully-qualified-naming

我在类中声明了一个类型为b的新指针时出现错误.请帮忙.

#include <iostream>

namespace B
{
    class b;
}
class a
{
    private:

    B::b* obj_b;

    public:

    a(){}
    ~a(){}
    void create()
    {
        b* obj_b = new b;
    }
};
class b
{
    private:

        a *obj_a;

    public:
        b()
        {
            obj_a->create();
        }
        ~b(){}
};
int main()
{
    b obj;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Ed *_* S. 6

b* obj_b = new b;
Run Code Online (Sandbox Code Playgroud)

而且有你的问题.您可以声明指向B的指针,因为指针的大小都相同,但是在不向编译器提供类定义的情况下,您不能构造一个或按值取一个.怎么可能知道如何为未知类型分配内存?