#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.
