我有一个抽象基础class FILEPARSER
的程序,它有两个虚拟方法read()
和print()
。
从此基类继承的两个类是:XMLPARSER
和CONFIGPARSER
,它们将实现方法。
主程序应该接受文件类型“config”或“xml”并继承该类型的相应类?
接受命令行中的选项。
答案 0 :(得分:2)
您必须显式构造正确的类(伪代码):
FileParser* parser = 0;
ParserType type = //retrieve the type you need
switch( type ) {
case ParserTypeConfig:
parser = new ConfigParser();
break;
case ParserTypeXml:
parser = new XmlParser();
break;
default:
//handle error
};
//then at some point you use the created object by calling virtual functions
parser->read(blahblahblah);
parser->print();
// and then at some point you delete the heap-allocated object
delete parser;
parser = 0;
当然你应该使用智能指针来处理堆分配的对象。