当前位置:  开发笔记 > 编程语言 > 正文

甚至在创建该类之前声明一个对象

如何解决《甚至在创建该类之前声明一个对象》经验,为你挑选了2个好方法。

无论如何在C++中创建类之前声明一个类的对象?我问,因为我试图使用两个类,第一个需要在其中包含第二个类的实例,但第二个类还包含第一个类的实例.我意识到你可能认为我可能进入一个无限循环,但我实际上需要在第一个类之前创建第二个类的实例.



1> Greg Hewgill..:

你做不到这样的事情:

class A {
    B b;
};
class B {
    A a;
};

最明显的问题是编译器不知道如何大做它需要制作A类,因为B的大小取决于A的大小!

但是,您可以这样做:

class B; // this is a "forward declaration"
class A {
    B *b;
};
class B {
    A a;
};

将类B声明为前向声明允许您使用指向该类的指针(和引用),而无需具有完整的类定义.



2> Adam Pierce..:

您不能声明未定义类的实例,但可以声明指向一个的指针:

class A;  // Declare that we have a class A without defining it yet.

class B
{
public:
    A *itemA;
};

class A
{
public:
    B *itemB;
};

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有