Ошибка: ожидаемый идентификатор

0

Так что прямо сейчас я просто пытаюсь создать простой класс и не могу понять, почему я получаю ошибку en. Вот мой заголовочный файл:

#define Mob

class Mob{
private:
    int lvl;
    float hp;
public:
    Mob(int, float); //Error expected an identifier on the float
};

и файл cpp с ним

#include "Mob.h"

Mob::Mob(int level, float health) // Error expected an identifier on the int and float
// and an Error: Expected a ; after the )
{
    hp = health;
    lvl = level;
} 
Теги:

2 ответа

8
Лучший ответ

Вы определили Mob для... ничего. Это делает ваш код эквивалентным:

class {
private:
    int lvl;
    float hp;
public:
    (int, float); // Expecting an identifier indeed
};

и это выполняется для остальной части кода, в который включен #define Mob.

Если вы пытаетесь включить защитников, вам нужно уникальное имя и определить его условно:

#ifndef UNIQUE_MOB
#define UNIQUE_MOB
// code
#endif
  • 0
    Все равно достаточно близко.
14

Эта строка:

#define Mob

Заставляет каждый экземпляр слова Mob заменяться ничем в вашем коде. Не делай этого.

Похоже, вы хотели включить защитника, который должен выглядеть примерно так:

#ifndef MOB_H
#define MOB_H


  ...

#endif

Ещё вопросы

Сообщество Overcoder
Наверх
Меню