Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

С++ вопрос программирование

Илья Калия Ученик (172), открыт 2 дня назад
#include<iostream>
#include <ctime>
class Entity
{
private:
int hp;
int defense;
int attack;
friend class Enemy;
public:
Entity(int tmpHp,int tmpDefense,int tmpAttack)
{
hp = tmpHp;
defense = tmpDefense;
attack = tmpAttack;
}
~Entity(){}
};
void GameProcces(int heroHp)
{
int action;
while(heroHp != 0)
srand(time(NULL));
action = 1 + (rand() % 10);
}
int main()
{

Entity hero(10,5,7);
Entity easyEnemy(5,4,3);
Entity middleEnemy(7,5,5);
Entity hardEnemy(10,6,7);
GameProcces(hero.hp);
}
Ошибка:.cpp|33|error: 'int Entity::hp' is private within this context|
3 ответа
Николай Алексеев Мастер (1564) 2 дня назад
Модификатор доступа у Entity не тот
Илья КалияУченик (172) 2 дня назад
Уточните пожалуйста
Николай АлексеевМастер (1564) 2 дня назад
В начале определение переменных с модификатором private, а entity вы используете как public. Вот и все
Новый Человек Просветленный (34937) 2 дня назад
     GameProcces(hero.hp);   
Попытка получить прямой доступ к приватному полю hp.
Николай Веселуха Высший разум (379554) 2 дня назад
 #include <cstdlib> 
#include <ctime>
#include <iostream>

#define RAND(min, max) (rand() % ((max) - (min)) + (min))

using namespace std;

class Entity {
int hp = 0;
int defense = 0;
int attack = 0;
friend ostream& operator<<(ostream& out, const Entity& entity) {
return out
<< "defense: " << entity.defense << '\n'
<< "attack: " << entity.attack;
}
public:
Entity(int hp, int defense, int attack)
: hp(hp), defense(defense), attack(attack) {}
int get_hp() const {
return hp;
}
void init_defense() {
++defense;
}
void init_attack() {
++attack;
}
};

void game_process(Entity& entity) {
if (entity.get_hp()) {
while (true) {
const auto action = RAND(0, 11);
if (!action) break;
action & 1
? entity.init_defense()
: entity.init_attack();
}
}
}

int main() {
srand(static_cast<unsigned>(time(nullptr)));
Entity hero(10, 5, 7);
Entity easy_enemy(5, 4, 3);
Entity middle_enemy(7, 5, 5);
Entity hard_enemy(10, 6, 7);
game_process(hero);
cout << hero << '\n';
}
Похожие вопросы