C++ 然后你可以使用类似于std::fill(敌人,敌人+100,精灵(1))
C++ 然后你可以使用类似于std::fill(敌人,敌人+100,精灵(1)),c++,class,C++,Class,然后你可以使用类似于std::fill(敌人,敌人+100,精灵(1))
然后你可以使用类似于std::fill(敌人,敌人+100,精灵(1))如果您需要将它们全部设置为true,则应使用初始值设定项列表,而不是构造函数体中的设置。这不是如何做到的。请参阅我的答案,以重新编写您的构造函数。这不是怎么做的。请参阅我的答案,了解对构造函数的重写。
// constructor
Sprite::Sprite(bool type)
{
// set stuff
}
// two Sprites of different types
Sprite Hero(1)
Sprite Enemy(0)
std::vector<Sprite> Enemies(100, Sprite(false));
Sprite Enemies[100];
for (size_t i = 0; i < 100; ++i)
Enemies[i].set(false);
std::vector<Sprite> Ennemies(100, Sprite(false));
std::vector<Sprite> Ennemies(100, {false}); // C++11 style
Sprite* pEnnemies = &Ennemies.front();
std::array<Sprite, 100> Ennemies(Sprite(false));
std::vector<Sprite> Enemies;
Enemies.reserve(100);
for (int i = 0; i < 100; i++)
{
Enemies.push_back(Sprite(0));
}
std::vector<Sprite> Enemies(100, Sprite(0));
//default constructor
Sprite::Sprite()
{
//set to false
}
Sprite::Sprite(bool type)
{
// set to type
}
Sprite::Sprite(bool type=false)
{
//set to type
{
Sprite::Sprite(bool type=false) : mymember(type)
{}
Sprite Enemies[100];
Sprite(bool type=false); // declaration
...
Sprite::Sprite(bool type) : // definition
x(random(0, 82)),
y(random(0, 20)),
Ammo(25),
Alive(true),
Type(type)
{}
class Sprite
{
public:
Sprite();
Sprite(bool type);
void Move();
private:
unsigned int x, y, Ammo;
bool Alive;
bool Type;
};
// constructor
Sprite::Sprite()
{
Alive = true;
Type = 0;
Ammo = 25;
x = random(0, 82);
y = random(0, 20);
}
Sprite::Sprite(bool type)
{
Alive = true;
Type = 1;
Ammo = 25;
x = 20; // get x from btn press
y = 10; // get y from btn press
}
unsigned char data[sizeof(Sprite) * 100];
Sprite* ptr = reinterpret_cast<Sprite*>(&data[0]);
Sprite* end = ptr + 100;
for (; ptr != end; ++ptr)
new (ptr) Sprite(0);
Sprite* ptr = reinterpret_cast<Sprite*>(&data[0]);
Sprite* end = ptr + 100;
for (; ptr != end; ++ptr)
ptr->~Sprite();