社区
C语言
帖子详情
STL容器怎么不能包容抽象类?
anglely168
2002-08-13 07:51:38
我在MFC里可以用CPtrList连接一堆抽象类CDbObject,但用STL怎么不能用vector或者list?如list<CDbObject>,难道要我自己再仿真MFC写个类CPtrList?
...全文
105
7
打赏
收藏
STL容器怎么不能包容抽象类?
我在MFC里可以用CPtrList连接一堆抽象类CDbObject,但用STL怎么不能用vector或者list?如list,难道要我自己再仿真MFC写个类CPtrList?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
anni
2002-09-09
打赏
举报
回复
我这有源码,给我留个言,我发给你
Tommy
2002-08-14
打赏
举报
回复
确实是用指针比较好,不过绝对不要用auto_ptr! FAQ上都写得很清楚了,这也就不重复了
zheng_can
2002-08-13
打赏
举报
回复
没问题的
不过最好用指针(STL 不支持引用的语义)
当然,用 auto_ptr 之类的 smartptr 也是可以的
这也避免了 new delete 方面的问题
freesmile
2002-08-13
打赏
举报
回复
要多态当然要指针拉 不过指针又带来内存管理的难题 可以看看楼上那个FAQ
nk_rainfall
2002-08-13
打赏
举报
回复
最好的解决方法是在容器中存入这个类的指针,因为指针是可以指向子类实例的,不然你这个容器毫无意思。
anrxhzh
2002-08-13
打赏
举报
回复
http://www.csdn.net/Expert/FAQ/FAQ_Index.asp?id=136
freesmile
2002-08-13
打赏
举报
回复
假如STL容器可以装抽象类,那么下面的代码将会调用A的缺省构造函数,然而
抽象类不能有实例,所以。。
#include <list>
using namespace std;
class A{
public :
virtual foo()=0;
};
void main()
{
list<A> a(10);
}
Java学习笔记及其与C++的比较
Java学习笔记及其与C++的比较
Thinking in C++.pdf
本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流介绍、常量、内联函数、命名控制、引用和拷贝构造函数、运算符重载、动态对象创建、继承和组合、多态和虚函数、模板和包
容器
类、多重继承、异常处理和运行时类型识别。 本书作为正式教材和自学用书均非常优秀,作为程序设计者的参考用书亦极为合适。
C++中
STL
为什么要使用迭代器?
原因: 1、通过迭代器访问
容器
,可以避免许多错误,同时还能隐藏
容器
的具体实现。 2、迭代器可以保证对所有
容器
的基本遍历方式,都是一样的,实现算法时若需要遍历,则使用迭代器,则可以不用关注
容器
的具体类型,实现数据结构和算法的分离。 3、迭代器本身有很多优点,可以弥补C++语言的不足,比如它的iterator_category,可以得到迭代器所指向的类别,这样可以根据不同的类别的特性,提供不同的...
STL
概论
STL
概论 什么是
STL
STL
六大组件
STL
是开源的
STL
是
包容
的 为什么要学习
STL
STL
和泛型
摘自:http://sttony.blogspot.com/search/label/C%2B%2B10
STL
和泛型程序设计by Danny Kalev简介泛型程序设计
STL
头文件的组织
容器
算法迭代器数字库工具
容器
顺序
容器
STL
容器
包含元素的要求
容器
类vector
容器
重分配capacity()
C语言
70,026
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章