c++ - 创建指针数组和分配的问题

标签 c++

问题是

"create an array of at leat four pointers to Reader object. Use the New operator to create at leat four pointers to derived class objects and assign them to the array"

读者是基类。 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;
            }
        }
    }
}

我不确定我的代码是否能回答上述问题。

最佳答案

您的问题是您读取的是字符串数据 (chars),但枚举值对应于整数。尝试:

category = atoi (number.c_str());

switch(category) {
      ...
}

此外,不要忘记打开和关闭文件:

reader_file.open ("readers.txt", ifstream::in);
...
reader_file.close();

关于c++ - 创建指针数组和分配的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6167071/

相关文章:

c++ - 非 const 字段在一个函数中很好,但在另一个函数中被识别为 const

c++ - 如何从 <chrono> 获取持续时间,如整数毫秒和浮点秒?

c++ - 使用动态分配的数据初始化 cv::Mat

c++ - 以下程序片段的可能输出?

c++ - 什么是精度?

c++ - 定义 BIT0、BIT1、BIT2 等而不使用#define

c++ - 为 C++ 流创建宏

c++ - 如何从esp32查找PC local-ip以使用MQTT Node.js服务器

c++ - 将继承的类传递给 C++ 中的函数

c++ - 另一个 "OpenGL Not Drawing"问题