vector中的剥离现象
来源:互联网 发布:金庸小说 知乎 编辑:程序博客网 时间:2024/04/28 09:52
#include <stdlib.h>#include <stdio.h>#include <vector>#include <iostream>using namespace std;class BaseClass{public: int a; string b; BaseClass() : a(1), b("BaseClass") { cout << b << endl; } virtual void foo() {};};class AClass : public BaseClass{public: int aa; string bb; virtual void foo() { cout << "AClass!" << endl; } AClass() : aa(2), bb("AClass") { cout << b << endl; }};class BClass : public BaseClass{public: int cc; string dd; BClass():cc(3), dd("BClass") { cout << dd << endl; } virtual void foo() { cout << "AClass!" << endl; }};int main(int argc, char* *argv){ vector<BaseClass> vct; AClass a;//= new AClass(); BClass b;// = new BClass(); AClass a1;// = new AClass(); BClass b1;// = new BClass(); a.aa = 100; b.cc = 101; a1.aa = 100; b1.cc = 101; vct.push_back(a); cout << "push a" << endl; cout << "push b1" << endl; vct.push_back(b1); cout << "erase a" << endl; /* int i = 0; for(auto it = vct.begin();it != vct.end();) { if(i == 0) { vct.erase(it); i++; } else { it++; } } vct.push_back(a); cout << "push a" << endl; vct.push_back(a); cout << "push b" << endl; vct.push_back(b); cout << "push a1" << endl; vct.push_back(a1); cout << "push b1" << endl; vct.push_back(b1); */ cout << "Start dynamic_cast" << endl; for ( BaseClass& value : vct ) { if(dynamic_cast<BClass*>(&value)) { cout << "dynamic_cast BClass ok!" << endl; continue; } if(dynamic_cast<AClass*>(&value)) { cout << "dynamic_cast AClass ok!" << endl; continue; } cout << "ERROR : class is BaseClass " << endl; } return 1;}
g++ -std=c++11 -frtti -g 1.cpp[~/test]./a.outBaseClassBaseClassBaseClassBClassBaseClassBaseClassBaseClassBClasspush apush b1erase aStart dynamic_castERROR : class is BaseClass ERROR : class is BaseClass
0 0
- vector中的剥离现象
- GIB系统中的剥离和加载,
- 把控件中的代码剥离出来单独成一个dll
- 使用vector迭代器的一个现象
- Java中的异常现象
- java中的别名现象
- FPGA 中的冒险现象
- 多线程中的互锁现象
- Java中的“别名现象”
- iframe中的奇怪现象
- java中的“死锁”现象
- Java中的溢出现象
- unity3d Player Settings 中的Stripping Level(剥离等级)对应每个等级具体剥离了哪些库
- 傅立叶变换中的吉布斯现象
- 教育中的“第十名现象”
- [求教]RewriteRule中的诡异现象
- 开关电源中的打嗝保护现象
- CSS 中的一个奇怪现象
- 使用JAVA操作HIVE
- 登陆
- UICollectionView 以及 AWCollectionViewDialLayout
- String,StringBuffer, StringBuilder 的区别
- 虚析构函数和容器继承
- vector中的剥离现象
- HASHTABLE, HashMap,TreeMap区别
- 天声人語 20151006 空爆された病院
- hdu 1856 more is better
- 无法找到元素 'util:list' 的声明
- 日经春秋 20151006
- Servlet的生命周期
- Hibernate缓存机制以及一级缓存和二级缓存的作用
- Hibernate和ibatis的区别总结