<b>按照范例名称动态成立对象</b>[VC/C++编程]
本文“<b>按照范例名称动态成立对象</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1 引言
我的一个实际项目中,由于但愿通过一致的接口掌握各种型号的设备,并且可以便利的随时扩大,以便将来支持更多的型号.因此,必须在运行时指定设备的型号.
为了使利用程序可以透明的掌握各种型号的设备,所以成立了一个简单的担当体系,计划一个协议类(Protocol Class)作为设备的掌握接口,并且为每个型号的设备计划了一个具体的类,从协议类派生并且实现了抽象的大众接口.
因此,我需求一种手段,按照设备的型号在运行时动态的成立设备类实例.不然,假如在编译时硬编码(Hard Code)设备配置,将失去实用性和机动性.
终究的后果是,需求这样一种技术,可以实现
Motor* motor=ClassByName("IM9001");
近似的功效.
2 计划和实现
现有的关键类的代码片断以下:
class IntelligentMotor
{
public:
IntelligentMotor(const std::string& port_name);
virtual bool Start()=0;
virtual bool Stop()=0;
virtual ~IntelligentMotor();
};
class IM9001 : public IntelligentMotor
{
public:
IM9001(const std::string& port_name);
virtual bool Start();
virtual bool Stop();
virtual ~IM9001();
private:
// ...
};
class IM9002 : public IntelligentMotor
{
public:
IM9002(const std::string& port_name);
virtual bool Start();
virtual bool Stop();
virtual ~IM9002();
private:
// ...
};
// more model ...
以上是“<b>按照范例名称动态成立对象</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |