如何解决创建指针数组并分配
的问题 问题是 \“创建至少四个指向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();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。