首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎样将不同的类的对象集合起来,该如何处理

2012-02-21 
怎样将不同的类的对象集合起来如题我希望有一个类似数组的容器,将不同的类的对象装起来,集中管理;这里的类

怎样将不同的类的对象集合起来
如题
我希望有一个类似数组的容器,将不同的类的对象装起来,集中管理;
这里的类都是继承自基类A的各式不同的类,而且还可能派生出新的子类;

大家有什么好的建议呢?

[解决办法]

探讨

谢谢楼上的回答
但是这样会不会造成 子类非继承变量 在赋值过程中得丢失呢?

[解决办法]
不是会丢失,只是你直接用A *访问不到。

如果你知道所有可能的子类,你可以让父类有一个成员标记这个对象到底是什么类的。然后你可以根据这个标记通过强转得到子类的指针。

C/C++ code
struct A{    int type;};struct B : A{    int member_of_B;};A *a[10];...//a[0]->member_of_B; // 这是不行的。if (a[0]->type == 0) // 确定a[0]是B类型的对象指针{    B *b = (B *)a[0]; // 强制转换获得b    b->member_of_B = 0;}
[解决办法]
楼主,c++ primer 后半部分提到你的问题了

自己招书看

一个容器存放 父类的指针 引发的问题

设计成智能指针。。。。



我以前没遇到这问题,还觉得作者多此一举,今天才发现,这个知识点是用处的



热点排行