博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++多态的一个例子
阅读量:4695 次
发布时间:2019-06-09

本文共 1591 字,大约阅读时间需要 5 分钟。

1 #include
2 using namespace std; 3 #define vi virtual 4 class abstractdrink{ 5 public: 6 //煮水 7 vi void Boil() = 0; 8 //冲泡 9 vi void Brew() = 0;10 //倒入杯中11 vi void Pourincup() = 0;12 //添加辅料13 vi void Addsomething() = 0;14 void makeDrink()15 {16 Boil();17 Brew();18 Pourincup();19 Addsomething();20 } 21 };22 23 class Coffee:public abstractdrink{24 void Boil() {25 cout << "煮开水" << endl; 26 }27 //冲泡28 void Brew() {29 cout << "冲泡咖啡" << endl; 30 }31 //倒入杯中32 void Pourincup() {33 cout << "倒入杯中" << endl;34 }35 //添加辅料36 void Addsomething(){37 cout << "添加牛奶和糖" << endl; 38 }39 };40 41 class Tea:public abstractdrink{42 void Boil() {43 cout << "煮开水" << endl; 44 }45 //冲泡46 void Brew() {47 cout << "冲泡茶叶" << endl; 48 }49 //倒入杯中50 void Pourincup() {51 cout << "倒入杯中" << endl;52 }53 //添加辅料54 void Addsomething(){55 cout << "添加枸杞" << endl; 56 }57 };58 void dowork(abstractdrink *abs)59 {60 abs->makeDrink();61 delete abs;62 }63 void test()64 {65 dowork(new Coffee);66 cout << "---------->" << endl;67 dowork(new Tea);68 } 69 70 int main()71 {72 test();73 return 0;74 }

 

转载于:https://www.cnblogs.com/mch5201314/p/11508273.html

你可能感兴趣的文章
批处理文件中的路径问题
查看>>
hibernate出现No row with the given identifier exists问题
查看>>
为什么wait()和notify()属于Object类
查看>>
配置NRPE的通讯
查看>>
shp系列(一)——利用C++进行shp文件的读(打开)与写(创建)开言
查看>>
匹配两个空格之间的字符。。。
查看>>
CSS 文字溢出 变成省略号 ...
查看>>
Spring事务
查看>>
java编程基础(三)流程控制语句
查看>>
让数据库跑的更快的7个MySQL优化建议
查看>>
jquery 取id模糊查询
查看>>
解决在vue中,自用mask模态框出来后,下层的元素依旧可以滑动的问题
查看>>
修改node节点名称
查看>>
PAT(B) 1014 福尔摩斯的约会(Java)
查看>>
PAT甲级题解-1123. Is It a Complete AVL Tree (30)-AVL树+满二叉树
查看>>
项目开发总结报告(GB8567——88)
查看>>
SSH加固
查看>>
端口扫描base
查看>>
iOS IM开发的一些开源、框架和教程等资料
查看>>
FansUnion:共同写博客计划终究还是“流产”了
查看>>