问题是
"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/