我愿做这样的事情,假设Lion
和Seal
是类Animal
的子类:C++:指针矢量元素
class Zoo
{
public:
Zoo(std::vector<Lion> lions1, std::vector<Seal> seals1) : lions(lions1), seals(seals1)
{
unsigned int i;
for (i=0; i<lions.size(); ++i)
{
animals.push_back(&(lions[i]));
}
for (i=0; i<seals.size(); ++i)
{
animals.push_back(&(seals[i]));
}
}
private:
std::vector<Animal*> animals;
std::vector<Lion> lions;
std::vector<Seal> seals;
};
这似乎并没有工作。在我看来,它不起作用,当我做animals.push_back(&(lions[i]));
或animals.push_back(&(seals[i]));
,指针有问题。任何想法为什么?
在此先感谢!
什么是错误? –
试试'animals.push_back(&seals [i]);'也有点说明为什么它不起作用会有帮助。 – Chemistpp
我想知道“这似乎不起作用”的意思,(在程序开始时没有编译?崩溃?)。为什么不发布Animal,Lion和Seal声明呢?总之,给我们一些*再现*问题*([SSCCE](http://www.sscce.org))。我对动物,狮子和印章有怀疑,但是如果没有看到可编译的代码就不能验证它。 – WhozCraig