STL容器怎么不能包容抽象类?

anglely168 2002-08-13 07:51:38
我在MFC里可以用CPtrList连接一堆抽象类CDbObject,但用STL怎么不能用vector或者list?如list<CDbObject>,难道要我自己再仿真MFC写个类CPtrList?
...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用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);
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧