【发布时间】:2016-06-14 21:19:15
【问题描述】:
我有一个名为 Cat 和 Dog 的动物基类和派生类。 display() 和 readfile() 都是两个类中的虚函数。
目前,一旦调用 readfile(),屏幕上只会显示“Kay”。如何以某种方式读取文件中的所有行,以便我可以在向量中找到一个项目,然后再对其进行编辑,例如,如果我想通过运行名为 changeName 的函数将“Sugar”更改为“Sopa”( ) 例如?
Cat.csv
Kay
Sugar
Jo
int main()
{
AnimalCollection coll;
std::ifstream file("Cat.csv");
Cat *cat = new Cat("CAT");
Dog *dog = new Dog("DOG");
coll.push_back(cat);
coll.push_back(dog);
for (Animal *c : coll)
{
c->display();
}
for (Animal *c : coll)
{
c->readfile(file);
}
return 0;
}
【问题讨论】:
-
将文件内容加载到适当的容器中(即
std::map),并在需要时从容器中检索信息。 -
您描述的内容与您发布的代码不符,但两者之间的一致之处在于您要求单个动物读取文件,并期待多个结果。
标签: c++ class pointers containers base