C++ 虚拟构造函数,从流中读取不同派生类的对象

YGguang 2014-08-23 10:39:55
在《more effective C++》中的虚拟构造函数那个条目,发现有些疑问:
如何去实现这个函数
 static NLComponent * readComponent(istream& str);  
呢?
大致描述下:
这是个从流读取对象的函数,NLcomponent* 是一个抽象类的指针。函数的目的是想从流中读取不同的对象(对象是抽象类的派生类)并通过返回一个指向对象的基类指针类,最终通过这个指针来使用这个对象。
像这样使用:
components.push_back(readComponent(str));

components的定义
list<NLComponent*> components;


在这里就有个问题了,从流中读取数据必然需要用new来把它保存下来吧!那么这个new出来的空间应该是多大呢?
...全文
273 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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