C++代理类

原创 2013年12月02日 20:46:57


class Vehice{
public:
virtual double weight() const = 0;
virtual void start() = 0;
virtual Vehice* copy() const=0;
virtual ~Vehice():
};




class RoadVehicle:public Vehice{/* ... */};


class AutoVehicle:public RoadVehicle{/* ... */};


class Aircraft:public Vehice{/* ... */};


class Helicopter:public Aircraft{/* ... */};


Vehice* RoadVehicle::copy() const
{
return new RoadVehicle(this);
}


class VehicelSurrogate{
public:
VehicelSurrogate();
VehicelSurrogate(const Vehice &);
~VehicelSurrogate();
VehicelSurrogate(const VehicelSurrogate &);
VehicelSurrogate &  operator(const VehicelSurrogate &);
private:
Vehice * vp;
};


VehicelSurrogate::VehicelSurrogate():vp(0){}
VehicelSurrogate::VehicelSurrogate(const Vehice &v):vp(v.copy()){}
VehicelSurrogate::~VehicelSurrogate(){delete vp;}
VehicelSurrogate::VehicelSurrogate(const VehicelSurrogate &v):vp(v.vp?v.vp->copy():0){}
VehicelSurrogate& VehicelSurrogate::operator=(const VehicelSurrogate &v)
{
if (this != &v)
{
delete vp;
vp = (v.vp?v.vp->start():0);
}
return *this;
}


double VehicelSurrogate::weigh()const
{
if (vp == 0)
{
throw "empty VehicelSurrogate.weigh()";
}
return vp->weight();
}


void VehicelSurrogate::start()
{
if (vp == 0)
{
throw "empty VehicelSurrogate.start()";
}
vp->start();
}

C++代理类设计(一)

作用:使设计的容器有能力包含类型不同而彼此相关的对象。 容器通常只能包含一种类型的对象,所以很难再容器中存储对象本身。存储指向对象的指针,虽然允许通过继承来处理类型不同的问题(多态性),但是也增加了内...
  • wswbdfei
  • wswbdfei
  • 2014年05月24日 15:11
  • 616

我的C++实践(17):代理类技术

    代理类其实就是代理模式的应用。Proxy模式为其他对象提供一种代理以控制这个对象的访问。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的...
  • zhoudaxia
  • zhoudaxia
  • 2009年09月19日 13:30
  • 1667

c++代理类

C++代理类是为了解决这样的问题: 容器通常只能包含一种类型的对象,所以很难在容器中存储对象本身。怎样设计一个c++容器,使它有能力包含类型不同而彼此相关的对象?  代理运行起来和他所代表的对象...
  • zengxiaosen
  • zengxiaosen
  • 2016年11月11日 00:23
  • 238

《C++沉思录》读书笔记之代理类

#include #include int main() { int i; for( i=0;i
  • KangRoger
  • KangRoger
  • 2014年06月11日 21:00
  • 1136

《C++沉思录》第五章---代理类

          在编程过程中可能要把不同的对象(这些对象可能存在一些关系:继承)放到一个容器里边,我们都知道一个基类的指针可以指向子类的一个实例,我们就在这里有用一个基类的指针使其指向不同的实例,...
  • wei801004
  • wei801004
  • 2006年06月08日 14:52
  • 1414

C++代理

1.为什么c++需要代理类 考虑如下的一个小实例:假设有一个类,命名为RoadVehicle,代表陆地上的车辆,简单的定义如下: [cpp] view plain copy //...
  • lcg910978041
  • lcg910978041
  • 2016年05月21日 06:49
  • 453

使用 gsoap 产生 webservice 代理类

使用 gsoap 产生 webservice 代理类
  • zhangxiaonanwin
  • zhangxiaonanwin
  • 2011年01月26日 15:59
  • 1424

C++ 代理类

原文 http://blog.csdn.net/kongying168/article/details/7220346 C++代理类的使用 所谓代理类,即surrogate.为什么要使...
  • keke_zkt
  • keke_zkt
  • 2013年03月28日 17:04
  • 384

c++ 代理类

c++   
  • csl13
  • csl13
  • 2010年12月03日 18:13
  • 389

wsdl生成代理类命令

进入 visual studio 命令提示,输入wsdl.exe /l:CS /n:MathService /out:MathService.cs http://localhost:911/MathS...
  • wakaka520
  • wakaka520
  • 2007年06月13日 14:33
  • 410
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++代理类
举报原因:
原因补充:

(最多只允许输入30个字)