我願做這樣的事情,假設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