请在下面找到一个简单的示例。我知道 .hpp 文件必须包含或转发声明它使用的所有内容我想知道是否最好也包含 .cpp 文件中使用的所有 .hpp 文件。我问这个是因为我最近在一个我正在从事的新项目中看到,人们倾向于避免在很多情况下包含标题。
在这种情况下:在 a.cpp 中包含 b.hpp 是否很好?我知道它已经通过包含a.hpp被包含,但我个人觉得如果一个符号出现在.cpp中,它应该被包含(或如果可能的话向前声明)
一个.hpp
#pragma once
#include "b.hpp"
class C; //forward declaration of C
class A
{
public:
B get_b();
private:
B _b;
C* _c;
};
a.cpp
#include "a.hpp"
//needed or I can leave it out, since B is included already in a.hpp?
#include "b.hpp"
B A::get_b()
{
return _b;
}