gpt4 book ai didi

c++ - 包括头文件与实现文件中的文件(C++)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:12 25 4
gpt4 key购买 nike

在头文件中包含头文件与在实现文件中包含头文件有什么区别?

这个

例如:

// test.h
#include"globals.h"

class Test
{
Test();
};

对比

//test.cpp
#include"globals.h"

Test::Test()
{
}

最佳答案

一般原则是您希望尽可能减少依赖性,因此:

  • 如果您的接口(interface) (.h) 引用给定 header 中的任何内容,则该 header 需要#included 在接口(interface) (.h) 中

  • 如果您只在您的实现 (.cpp)(而不是您的界面)中引用给定的 header ,那么您应该只在实现中#include 该 header

  • 您还应该尝试只#include 实际需要的 header ,尽管在大型项目的生命周期中这可能很难维护

因此对于上面的示例,如果您没有在 test.h 中引用 globals.h 中的任何内容,但您确实在 test.cpp 中引用了它,那么 #include 应该放在 test.cpp 中。如果您在 test.h 中引用了 globals.h 中的任何内容,那么您需要在 test.h 中使用#include。

关于c++ - 包括头文件与实现文件中的文件(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16099271/

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