.hppファイルで完全な定義を必要としないクラスがある場合、私は通常、主に前方宣言を使用します
元)
//B.hpp
namespace A_file {
class A;
}
namespace B_file {
class B {
public:
B();
private:
A *ptr_to_A;
}
}
//B.cpp
#include "A.hpp"
using namespace A_file;
namespace B_file {
B(int value_) {
*ptr_to_A = new A(value_);
}
int some_func() {
ptr_to_A->some_func_in_A();
}
}
私はこの種のコードを書きます。hpp全体を含めてまた節約できると思います。(コメントしてください、あなたが言うなら、これは健康的ではありません)
std名前空間のオブジェクト/クラスに対して同じことを行う方法はありますか?方法がある場合、それは大丈夫ですか、それとも副作用がありますか?