"clude.h" - это файл заголовка, в который я поместил все свои файлы заголовков и пространства имен.
hit_box.h
#include "cludes.h"
class hit_box{
friend class player;
private:
/*class members*/
public:
// without this I get "no default constructor" error.
hit_box();
//I think having two constructors will create problems but that's a problem on top of my current problem
hit_box(char typ, int t, int x, int y, float Px, float Py,int pw, float spotx, float spoty);
}
player .h
#pragma once
#include "cludes.h"
class player {
public:
enum states { falling, hurt, landed, jumping };
player(float a, float b, int f, sf::Texture t, sf::Texture t2, hit_box pnch);
private:
//other class members
hit_box punch;
}
игрок. cpp
#include "player.h"
#include "cludes.h"
player::player(float a, float b, int f, sf::Texture t, sf::Texture t2, hit_box pnch){
/*other class members*/
hit_box punch = pnch;
}
Я хочу, чтобы hit_box
был участником, которого я могу вызвать в классе игрока функции. это сообщения об ошибках, которые я получаю
Error C2061 syntax error: identifier 'hit_box'
Error C3646 'punch': unknown override specifier
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int
Я пытался унаследовать класс hit_box
от
player.h
#include "cludes.h"
class player {
hit_box punch;
public:
player(float a, float b, int f, sf::Texture t, sf::Texture t2);
}
player. cpp
#include "player.h"
#include "cludes.h"
player::player(float a, float b, int f, sf::Texture t, sf::Texture t2) : punch('!', 10, 30, 64, -10, -10, 20, 4.44, 4.44){
//other class members
}
нет конструктора по умолчанию hit_box
, таким образом, это не конструктор по умолчанию. независимо от того, что я все еще получаю
Error C3646 'punch': unknown override specifier
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int
Я использую sfml, если это важная информация.