[英]How can I store instances of related classes into a vector c++
我無法找到將類似類的實例存儲到向量中的方法。 我考慮過使用基礎 class,但我不確定它是否會起作用。 例如,使用運動:
class player //base
{
std::string name;
int age;
player(std::string name, int age) name (name), age (age);
};
class soccerplayer: public player
{
float goal_per_game;
//etc
};
class basketballplayer: public player
{
float defensive_blocks;
float three_pointers_per_game;
//etc
};
class hockeyplayer: public player
{
//etc
};
std::vector<player> favoriteplayers;
favoriteplayers.push_back(player("Lionel Messi", 33));
我不確定是否有一種方法可以存儲此 class 的各種實例。 如果沒有,有什么解決方法是可能的?
您可以使用指向基本 class 的(智能)指針向量與值向量。
std::vector<std::unique_ptr<player> > favoriteplayers;
favoriteplayers.emplace_back(new sockerplayer(...));
favoriteplayers.emplace_back(new hockeyplayer(...));
向量中的所有項目都指向播放器基類,但它們實際上可以是派生類的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.