社区
C语言
帖子详情
STL容器怎么不能包容抽象类?
anglely168
2002-08-13 07:51:38
我在MFC里可以用CPtrList连接一堆抽象类CDbObject,但用STL怎么不能用vector或者list?如list<CDbObject>,难道要我自己再仿真MFC写个类CPtrList?
...全文
102
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++的比较
- **
抽象类
**:包含抽象方法的类称为
抽象类
,
不能
被实例化。 - **接口**:定义了一组行为规范,多个类可以通过实现同一个接口实现多态。 - **内部类**:定义在一个类内部的类,可以访问外部类的成员变量。 **1.7 ...
Thinking in C++.pdf
- **模板和包
容器
类**:介绍了模板的基本概念及其在泛型编程中的应用,同时探讨了
STL
容器
类的设计理念和使用技巧。 - **多重继承**:虽然 C++ 中多重继承的使用较少,但本书仍提供了对其原理和应用场景的深入分析。 ...
C++中
STL
为什么要使用迭代器?
1、通过迭代器访问
容器
,可以避免许多错误,同时还能隐藏
容器
的具体实现。 2、迭代器可以保证对所有
容器
的基本遍历方式,都是一样的,实现算法时若需要遍历,则使用迭代器,则可以不用关注
容器
的具体类型,实现数据...
C语言
70,020
社区成员
243,265
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章