gpt4 book ai didi

c++ - 将 header 包含到 .h 文件中

转载 作者:行者123 更新时间:2023-11-30 01:22:57 26 4
gpt4 key购买 nike

有人告诉我,如果可以避免的话,不要在 .header 中包含太多类,而是将它们包含在 .cpp 中。为此,他们告诉我创建原型(prototype)类,例如:

class abc;

代替:

include "abc.h"

但这只是为了以防万一 abc 类没有被用作属性或返回值。如果它是一个参数,我可以使用原型(prototype)...这是为什么?

另外,为什么在 .h 文件中包含这么多 header 会很糟糕?

谢谢

最佳答案

If it's a parameter, I can use the prototype... Why is this?

只要您不需要访问已声明类的内部结构,就可以使用前向声明,例如当您声明指针、引用或将其作为参数传递时。您不能使用前向声明来继承类,调用其任何成员函数或访问其成员,或声明非指针/引用类型的成员:这是因为类的内部结构必须为编译器所知,以便执行上述任一操作。

why is so bad to include so many headers in the .h file?

这本身并不是普遍的“坏”,但对于许多编译器来说,它可能会减慢编译过程,因此通常会尽量减少您的包含。现代编译器具有有用的功能(例如预编译 header )来最大程度地减少影响,因此在您可以使用前向声明的地方更多地成为一种审美选择而不是实际问题。

关于c++ - 将 header 包含到 .h 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546244/

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