I have been attempting to make some code, but I am a bit new to c++ and need some help.
I cannot instantiate class Player as a pointer, because it's an "incomplete type" (or undefined type, vs says both). Below are some (simplified, albeit not very) versions of my code:
Entity.h
#pragma once
#include <vector>
class Entity
{
public:
    static void init();
    class EntityObject;
    class Player;
    static std::vector<EntityObject*> entities;
};
Entity.cpp
#include "Entity.h"
void Entity::init()
{
    entities = std::vector<EntityObject*>();
}
class Entity::EntityObject
{
private:
    float velX, velY, x, y;
public:
    EntityObject(float xa, float ya) { x = xa; y = ya; }
    float getVelX() { return velX; }
    float getVelY() { return velY; }
    float getX() { return x; }
    float getY() { return y; }
};
class Entity::Player : EntityObject
{
public:
    Player(float xa, float ya) : EntityObject(xa, ya)
    {
        printf("Player created");
    }
};
Can anyone tell me why
#include "Entity.h"
int main(int argc, char* argv)
{
    Entity::init();
    Entity::EntityObject* player = new Entity::Player(10.0f, 10.0f);
    Entity::entities.push_back(player);
}
gives an incomplete/undefined type? Thanks.
Edit:
The errors are:
Both errors direct to this line: Entity::EntityObject* player = new Entity::Player(10.0f, 10.0f);
Error (active)  E0070   incomplete type is not allowed
Error   C2027   use of undefined type 'Entity::Player'
 
     
     
    