gpt4 book ai didi

C++:两个类如何在不重新声明且没有 header 相互调用的情况下相互调用

转载 作者:太空狗 更新时间:2023-10-29 23:23:04 27 4
gpt4 key购买 nike

我对此有点疑问。我有一个类 A,它实例化 B 的一个对象,然后 B 实例化一个 A 的对象。这有可能吗?我试着在每个标题中添加这个

#ifndef A
#define A
class a...
#endif

但是如果让我处于无限标题循环中,它达到最大标题包括,那么显然一个正在调用另一个,另一个正在调用那个。有什么办法可以实现吗?

编辑:好的,这似乎是一个很好的答案,但现在 A 提示 B 没有构造函数,尽管它确实有一个构造函数。我想不通。

最佳答案

您可以转发声明类,例如:

A.h:

class B;

class A
{
B* a_;
};

B.h:

class A;

class B
{
A* a_;
};

在您实际使用这些类的源文件中(即创建它们、销毁它们、使用它们的成员等),您需要包含两个 header 以便它们的定义可用:

#include "A.h"
#include "B.h"

关于C++:两个类如何在不重新声明且没有 header 相互调用的情况下相互调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2155990/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com