我更喜欢#include
在我的头文件中尽量减少使用,尽可能使用前向声明,我相信这被认为是好的做法。
如果我有一个方法声明,它会很好用:
bool IsFlagSet(MyObject *pObj);
但是,如果我有typedef Ptr<MyObject> MyObjectPtr
并且MyObject.h
API 更改为:
bool IsFlagSet(MyObjectPtr pObj);
我现在不需要吗#include "MyObject.h"
?有没有办法解决这个问题,或者仅仅是使用智能指针所付出的代价?