--- created: 2026-04-16 08:01 course: topic: related: type: lecture status: 🔴 tags: - university --- ## 📌 Summary > [!abstract] > --- ## 📝 Content ## Classes C approach of defining a Pokemon: ```C typedef struct { int exp; int level; int attack; int defense; int speed; int hp; } Pokemon; void upgrade(*Pokemon p, int gainedExp) { p->exp += gainedExp; if (p->exp >= 4000) { p->exp -= 4000; p->level += 1; } } int main() { Pokemon fukano = {3600, 1, 400, 400, 20, 1200}; printf("Exp of fukano: %d", fukano); upgrade(&fukano, 400); printf("Exp of fukano: %d", fukano); return 0; } ``` In C++ we use classes: ```C++ class Pokemon { public: // visibility modifier int exp; int level; int attack; int defense; int speed; int hp; void upgrade(int gainedExp) { exp += gainedExp; if (exp >= 4000) { exp -= 4000; level += 1; } } } int main() { Pokemon fukano = {3600, 1, 400, 400, 20, 1200}; cout << "Exp of fukano: " << fukano.exp << endl; fukano.upgrade(400); cout << "Exp of fukano: " << fukano.exp << endl; } ```