gpt4 book ai didi

c++ - 如何使用动态绑定(bind)继承适当的类?

转载 作者:行者123 更新时间:2023-11-28 03:49:34 24 4
gpt4 key购买 nike

我有一个程序,它有一个抽象基类 FILEPARSER,它有两个虚拟方法 read()print()。从该基类继承的两个类是:XMLPARSER 和将实现方法的CONFIGPPARSER

主程序应该接受文件类型“config”或“xml”并为该类型继承适当的类?

接受来自命令行的选项。

最佳答案

您必须显式构造正确的类(伪代码):

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;

当然你应该使用智能指针来处理堆分配的对象。

关于c++ - 如何使用动态绑定(bind)继承适当的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5974134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com