在《more effective C++》中的虚拟构造函数那个条目,发现有些疑问:
如何去实现这个函数
static NLComponent * readComponent(istream& str);
呢?
大致描述下:
这是个从流读取对象的函数,NLcomponent* 是一个抽象类的指针。函数的目的是想从流中读取不同的对象(对象是抽象类的派生类)并通过返回一个指向对象的基类指针类,最终通过这个指针来使用这个对象。
像这样使用:
components.push_back(readComponent(str));
components的定义
list<NLComponent*> components;
在这里就有个问题了,从流中读取数据必然需要用new来把它保存下来吧!那么这个new出来的空间应该是多大呢?