gpt4 book ai didi

c++ - C++头文件的组织

转载 作者:搜寻专家 更新时间:2023-10-31 02:16:53 24 4
gpt4 key购买 nike

假设我有一个带有 typedef A、B 和 C 的头文件 header1.h。B 使用 A,C 使用 B,所以类型定义的顺序是强制的。现在我决定 typedef B 确实应该在它自己的头文件 (header2.h) 中。但是我不能从 header1 中包含 header2(因为那时 typedef B 会在 C 之前),我也不能从 header2 中包含 header1。我试图转发声明类型,但我认为这只有在指向它们时才有效。否则,编译器仍会给出“不完整类型”错误。

最佳答案

我认为你在这里唯一能做的就是将每个 typedef 移动到它自己的标题中,然后你可以以任意顺序包含它们。像这样:

a.h

#ifndef A_H
#define A_H

typedef int A;

#endif // A_H

b.h

#ifndef B_H
#define B_H

#include "a.h"

typedef A* B;

#endif // B_H

c.h

#ifndef C_H
#define C_H

#include "b.h"

typedef B& C

#endif // C_H

关于c++ - C++头文件的组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36423176/

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