#include<iostream>
class Entity {
public:
virtual int get_name() { return 1; }
};
class Player : public Entity {
public:
int m_Name;
Player(const int name) {
m_Name = name;
}
int get_name() override { return m_Name; }
};
void print(Entity entity) {
std::cout << entity.get_name() << std::endl;
}
int main() {
Entity e;
Player p(2);
print(e);
print(p);
std::cin.get();
}
Why does print(e) and print(p) both return 1? p.m_Name is 2 in the debugger and if I change print to take a Player, it prints 2.