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
,或者它是好的吗?
在此先感谢