【发布时间】:2011-03-08 11:14:53
【问题描述】:
我有一个接口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 声明?在我的编译器上,这编译得很好,但是标准的单一定义规则是否允许多个相同的 typedef 声明?另外,您认为我应该将InterfaceFwd.h 包含在Interface.h 中,而不是重新声明InterfacePtr,否则就可以了?
提前致谢
【问题讨论】:
标签: c++ typedef forward-declaration shared-ptr