Я изучаю C ++ самостоятельно, "создавая" RPG. Тем не менее, я застрял в момент создания класса с именем Item, который будет базовым классом для всех игровых элементов (или, если бы это было в Java, интерфейс). Вот мой код:
class Item {
public:
virtual const char* GetName() = 0;
};
Я прочитал кое-что о «чисто виртуальных» функциях, которые я использую.
Класс моего персонажа, где я использую свой предмет:
class Character {
// some code...
void ConsumeItem(Item item);
}
Но gcc выдает мне эту ошибку:
g++ -Wall -o adventure character.cpp adventure.cpp
In file included from adventure.cpp:3:0:
character.h:36:24: error: cannot declare parameter ‘item’ to be of abstract type ‘Item’
item.h:4:7: note: because the following virtual functions are pure within ‘Item’:
item.h:11:22: note: virtual const char* Item::GetName()
Я очень новичок в ООП в C ++, так как он сильно отличается от Java. Я уже читал некоторые статьи об абстрактных классах в C ++, но просто не могу заставить его работать.
Подскажите, пожалуйста, правильный путь для достижения этой цели?