fsd*_*dfa 0 c++ class include guard
假设我有一个A类和一个B类.
A的.h需要B的.h,B的.h需要A.的A.h(需要= #include).
所有.h都有警卫:
#ifndef _classX_ #define _classX_ ... ... #endif
但是如果我编译A的.cpp,那么当它包含B的.h时,B类不能包含A类的.h,因为A类已经使用了守护.
我怎么解决这个问题?
小智 5
您将需要其中一个类的前向声明.
// a.h // do not #include b.h class B; // forward declaration class A { .... B * b; };
请注意,类A不能包含实际的B实例 - 它必须是指针或引用.你也不能通过标题中的B指针调用任何函数 - 它们必须进入.cpp源文件,其中#includes两个标题.
归档时间:
15 年,7 月 前
查看次数:
106 次
最近记录: