I've been developing C# and Java (among many other languages) for many years, and I'm just now getting my feet wet in C++. I've buried myself in resources on inheritance and classes, but I just can't seem to figure out how to get rid of this pesky error.
My code:
Entity.h:
#ifndef ENTITY_H
#define ENTITY_H
#include <iostream>
class Entity
{
public:
    std::string m_name;
    void update(float delta);
    Entity();
private:
    virtual void step(float delta);
};
#endif
Entity.cpp:
#include "Entity.h"
Entity::Entity()
{
    m_name = "Generic Entity";
}
void Entity::update(float delta)
{
    step(delta);
}
void Entity::step(float delta) {}
Player.h:
#ifndef PLAYER_H
#define PLAYER_H
#include "Entity.h"
class Player : public Entity
{
public:
    Player();
private:
    virtual void step(float delta);
    virtual void draw() const;
};
#endif
Player.cpp:
#include "Player.h"
Player::Player()
{
    m_name = "Player";
}
void Player::step(float delta) {}
void Player::draw() const {}
Main.cpp:
int main()
{
    return 0;
}
As you can see, I'm not doing anything with the classes, but I'm getting these errors:
Error    3    error LNK1120: 1 unresolved externals    C:\[...]\Debug\ConsoleApplication1.exe    ConsoleApplication11
Error    2    error LNK2019: unresolved external symbol "public: __thiscall Entity::Entity(void)" (??0Entity@@QAE@XZ) referenced in function "public: __thiscall Player::Player(void)" (??0Player@@QAE@XZ)    C:\[...]\ConsoleApplication1\Player.obj    ConsoleApplication1
UPDATE: The code magically works when I comment out the following code in Player.cpp:
/*Player::Player()
{
    m_name = "Player";
}*/
 
    