创建指针数组并分配

问题描述

的问题 问题是   \“创建至少四个指向Reader对象的指针的数组。使用New运算符至少创建四个指向派生类对象的指针,并将它们分配给该数组\” 读者是基础类。 fantasyReader,horrorReader,misteryReader和scienceReader是派生类。 我必须阅读Reader.txt \“\“\“\“\“\“\“\“\“\“\“内容\”\”\”\”\”\”\”\”\”\”\”\” 大卫 0 <<-神秘类别 约翰 1 <恐怖类 标记 2 <科学分类 莎拉 3 <-fantasyReader \“\“\“\“\“\“\“\“\“\“\“\“\“\“\“结束\”\”\”\”\”\”\”\”\”\ “ \” \“ \” \“ \” \“ \” \“ \” 我有的
enum {HORROR,MYSTERY,SICENCE,FANTASY}; 

int main(void)
{
    Reader *obj[10];

    ifstream reader_file;

    int category =0; 
    string name; 
    string number; 
    int counter = 0;
    if(reader_file.is_open())
    {

        while( getline(reader_file,name,\'\\n\') && 
                getline(reader_file,number,\'\\n\'))
        { 
            switch(category)
            {
                case FANTASY:
                    obj[counter++] = new fantasyReader(name);
                    break;
                case MYSTERY: 
                    obj[counter++] = new mysteryReader(name);
                    break
                case HORROR:
                    obj[counter++] = new horrorReader(name);
                    break;
                case SCIENCE:
                    obj[counter++] = new scienceReader(name);
                    break;
            }
        }
    }
}
我不确定我的代码是否能回答上述问题。     

解决方法

        您的问题是您读取了字符串数据(字符),但枚举值对应于整数。尝试:
category = atoi (number.c_str());

switch(category) {
      ...
}
另外,不要忘记打开和关闭文件:
reader_file.open (\"readers.txt\",ifstream::in);
...
reader_file.close();
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...