I have the following three headers:
IBaseStates.h
class IBaseStates { public: enum STATE; virtual void Update( STATE state ) = 0; };
PlayerStates.h
#pragma once #include "IBaseStates.h" #include "Player.h" class PlayerStates : public IBaseStates, public Player { public: enum STATE { FLYING, FALLING }; int textureAmount; PlayerStates(); ~PlayerStates( ); void Update( STATE state ); };
Player.h
#pragma once #include "StructVertex.h" #include "SquareVertices.h" #include "WICTextureLoader.h" using namespace Microsoft::WRL; using namespace DirectX; //using namespace DirectX; class Player : public SquareVertices { public: Player( ComPtr d3dDevice ); ~Player(); void Initialize(); void Update(); float x; float y; float z; float rotation; float velocity; ComPtr vertexbuffer; ComPtr indexbuffer; ComPtr texture[3]; protected: const ComPtr d3dDevice; };
Why when I define a constructor for my PlayerStates class in my PlayerStates.cpp file do I get
no default constructor exists for class Player
PlayerStates.cpp
#include "pch.h" #include "PlayerStates.h" PlayerStates::PlayerStates() : textureAmount( 3 ) { }