Answer the question
In order to leave comments, you need to log in
How to add a variable to an object of an already defined class in c++?
on the example of python (3):
class entity: pass # обьявляем класс
player = entity() # новый обьект player
player.dead = True # ТУТ мы создаём новую переменную для player? не указанную в классе entity
print(player.dead) # печатаем её (чисто для примера)
#include <stdio.h> // библиотека с функии printf
class entity{}; // обьявляем класс
int main(int argc, char* argv[] ){ // магия :)
entity player; // создаём обьект player
bool player.dead = true; // ТУТ должна создаваться переменная, но ни судьба :(
printf("%s", player.dead ? "true" : "false");// сдесь и далее - более страшное колдунство чем int main :)
return 0;
}
Answer the question
In order to leave comments, you need to log in
Method 1. Inheritance.
class Entity
{
public:
virtual ~Entity() {} // для корректной работы динамических структур данных
// наподобие менеджеров уровней; в нашем примере не нужно;
// в реальной игре потребуется
}
class Player : public Entity
{
public:
bool isDead;
}
int main()
{
Player player;
player.isDead = true;
return 0;
}
Player& somePlayer = dynamic_cast<Player&>(someEntity);
class Player
{
public:
Entity entity;
bool isDead;
}
struct PlayerInfo
{
bool isDead;
}
std::map<const Entity*, PlayerInfo> playerInfo;
typedef std::string PlayerId;
std::map<PlayerId, PlayerInfo> playerInfo;
No way.
This is a feature of python, and it exists in a small number of other languages. For example ruby.
And I note that this feature is more of a minus than a plus.
Prototyping with it is faster, but it negatively affects long-term support.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question