0
我有一個接口Interface
。 我也有.h文件InterfaceFwd.h
它看起來像共享指針正向聲明
#ifndef Blah
#define Blah
#include <boost/shared_ptr.hpp>
class Interface;
typedef boost::shared_ptr<Interface> InterfacePtr;
#endif
我也有Interface.h
#ifndef SomeOtherBlah
#define SomeOtherBlah
class Interface
{
virtual ~Interface()
{
}
...
};
typedef boost::shared_ptr<Interface> InterfacePtr;
#endif
我是否需要擔心,如果這兩個文件都包含會有重複的聲明InterfacePtr?在我的編譯器上編譯好,但標準的One-Definition Rule是否允許多個相同的typedef聲明?另外,你認爲我應該包括InterfaceFwd.h
到Interface.h
,而不是重新聲明InterfacePtr
,或者它是好的嗎?
在此先感謝