#include <iostream>
#include <string>
using namespace std;
class math
{
public:
math(){}
virtual ~math(){}
virtual void add()=0;
};
class ADD1 : public math
{
public:
ADD1(){}
virtual ~ADD1(){}
void add()
{
cout<<"the first type of add"<<endl;
}
};
class ADD2 : public math
{
public:
ADD2(){}
virtual ~ADD2(){}
void add()
{
cout<<"the second type of add"<<endl;
}
};
class calculate
{
public:
calculate(){}
~calculate(){}
void set_alg(math *p)
{
p_math=p;
}
void operation()
{
p_math->add();
}
protected:
math *p_math;
};
int main()
{
calculate *p_cal=new calculate;
math *p_add1=new ADD1;
math *p_add2=new ADD2;
p_cal->set_alg(p_add1);
p_cal->operation();
p_cal->set_alg(p_add2);
p_cal->operation();
delete p_add2;
delete p_add1;
delete p_cal;
system("pause");
return 0;
}
原文链接: https://www.cnblogs.com/tiandsp/archive/2012/06/30/2571314.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/54077
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!