У меня возникают проблемы с пониманием того, как создавать новые объекты класса и помещать его sh в вектор с помощью интеллектуальных указателей.
с использованием необработанных указателей это будет выглядеть примерно так:
std::vector <Deck*> creat_cards; // vector with the objects
std::vector <Deck*> final_cards; //vector that will be copied into.
for (unsigned i=0; i <creat_cards.size(); i++) {
final_cards.push_back(new Card(creat_cards[i]->getMonster(),creat_cards[i]->getCost(),creat_cards[i]->getType()));
}
// это работает
однако при попытке сделать это я получаю сообщение об ошибке:
std::vector <Deck*> creat_cards; // vector with the objects
std::vector<std::shared_ptr<Card*>> final_cards //vector that will be copied into.
for (unsigned i=0; i <creat_cards.size(); i++) {
final_cards.push_back(new Card(creat_cards[i]->getMonster(),creat_cards[i]->getCost(),creat_cards[i]->getType()));
}
Работает ли push_back с умными указателями?