Baz*_*Baz 10 c++ shared-ptr forward-declaration c++98
我正在尝试重构我的代码,以便我使用前向声明而不是包含大量的标头.我是新手,对boost :: shared_ptr有疑问.
说我有以下界面:
#ifndef I_STARTER_H_
#define I_STARTER_H_
#include <boost/shared_ptr.hpp>
class IStarter
{
public:
virtual ~IStarter() {};
virtual operator()() = 0;
};
typedef boost::shared_ptr<IStarter> IStarterPtr;
#endif
Run Code Online (Sandbox Code Playgroud)
然后我在另一个类中有一个函数,它将一个IStarterPtr对象作为参数,比如说:
virtual void addStarter(IStarterPtr starter)
{
_starter = starter;
}
...
IStarterPtr _starter;
Run Code Online (Sandbox Code Playgroud)
如何在不包含IStarter.h的情况下转发声明IStarterPtr?
我正在使用C++ 98,如果这是相关的.
只要你不对它们调用*或 - >,共享指针就可以使用前向声明的类型,所以它应该只是简单地写:
class IStarter;
typedef boost::shared_ptr<IStarter> IStarterPtr;
Run Code Online (Sandbox Code Playgroud)
你需要包括<boost/shared_ptr.hpp>当然
| 归档时间: |
|
| 查看次数: |
15065 次 |
| 最近记录: |