gpt4 book ai didi

c++ - OOP C++ - 错误,因为 A.h 包含 B.h,B.h 又包含 A.h

转载 作者:太空宇宙 更新时间:2023-11-04 15:22:58 28 4
gpt4 key购买 nike

我正在学习 OOP 并且有疑问。假设我有一个包含 ClassB.h 的文件 ClassA.h,并且在某些时候我的 ClassB.h 需要包含 ClassA .h

这会产生一个错误,我想我明白为什么会发生这种情况,因为我得到了一个无限包含循环。但是在这种情况下该怎么办?有没有办法解决这个错误?还是我应该重新考虑我的类(class)以避免它?这是否意味着我的类(class)组织设计不佳?如果是这样,安排我的“类图”并避免这种情况的方法是什么?

我只想知道在这种情况下最好的做法是什么。另外,为什么“#pragma once”指令不能解决这个问题?提前致谢。

最佳答案

您也可以通过使用前向声明来解决这个问题。如果您不创建包含在 header 中的类的实际对象或不从它继承,比如您只需要 header 中的它们的指针,您就可以这样做。

例子:

ClassA.h
class ClassB;
//rest of the codes here

ClassB.h
class ClassA;
//rest of the codes here

ClassA.cpp
#include ClassA.h
#include ClassB.h

ClassB.cpp
#include ClassB.h
#inlcude ClassA.h

关于c++ - OOP C++ - 错误,因为 A.h 包含 B.h,B.h 又包含 A.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14887042/

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