C++primer笔记之vector多态
2015-12-05 14:34
323 查看
bulk为Quote派生类
vector<Quote> basket; basket.push_back(q); basket.push_back(bulk("think in C++", 100.0, 50, 0.5)); cout << "普通对象:"<<endl; cout<<basket.back().net_price(10)<<endl;
调用的是Quote的net_price成员,没有多态,vector 中的bulk 为切割版的Quote对象
vector<shared_ptr<Quote>> bskt; bskt.push_back(make_shared<Quote>("think in java",99.0)); bskt.push_back(make_shared<bulk>("think in C++",100.0,50,0.5)); cout << "shared_ptr" << endl; cout<<bskt.back()->net_price(100);调用了bulk的net_price函数,多态
所以我们无法直接用对象实现多态,反而通过指针或引用实现多态
相关文章推荐
- LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- C语言 itoa和atoi用法
- C语言中的链表
- C++创建随机不重复的数字
- C++ Primer Plus第六版 第十四章 编程练习答案
- 一步步将vim改造成C/C++开发环境(IDE)
- x64 Windows下配置C语言开发MySQL的环境遇到的问题
- C++类的存储
- 浅论C++的复杂性
- 浅论C++的复杂性
- C语言(结构体、枚举、typedef)笔记 by STP
- C++教程(1)——准备学习C++
- 学习C语言总结
- C++ 读取文件中的数字 并存放到vector中 在由vector存放到 multimap中 最后BFS 判断是否连通
- C/C++程序基础
- Java通过C++调用 C# DLL
- C/C++中关于局部函数中更新实参指针的方法
- c++中的异常捕捉try和catch
- VC++读目录下所有文件
- C语言问题总结