我使用当前的vector.push_back()方法遇到了分段错误(我认为)。
这是一些示例代码:
所以我有我的班级僵尸
class Zombie
{
public:
Zombie();
~Zombie();
SDL_Surface* image;
SDL_Rect box;
bool dead;
protected:
private:
// gets random coordinates around the screen
SDL_Rect get_zombie_rect();
};
构造函数是:
Zombie::Zombie()
:
dead(false),
image(load_image("Player.png")),
box(get_zombie_rect())
{
}
Zombie 有一个处理程序类,通过一个名为 create_new_zombie() 的函数来管理向量。(这是问题)
void Zombie_Manager::create_new_zombie()
{
Zombie newZombie;
zombies.push_back(newZombie);
}
这是将元素添加到向量的正确方法吗?
我可以使用指针获得一个工作版本,但是必须有一种更简单、更正确的方法来实现这一点,对吧?
如果 std::vector.push_back() 浅拷贝其新元素,为什么会出现段错误?我的假设错了吗?