I'm learning C++ by myself, "creating" a RPG. However, I'm stuck at point of creating a class named Item, which would be the base class for all game items (or if it was in Java, an interface). Here's my code:
class Item {
public:
virtual const char* GetName() = 0;
};
I read something about "pure virtual" functions, which I'm using.
My Character class, where I use my Item:
class Character {
// some code...
void ConsumeItem(Item item);
}
But gcc gives me this error:
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()
I'm very new to OOP in C++, as it is very different from Java. I already read some articles about abstract classes in C++, but I just can't get it working.
Can you please tell me the right way to achieve this?