Отдельные ошибки файла класса?

Я новичок в C++ и пытаюсь разделить файлы классов для созданной мной игры, но когда я это делаю, VS выдает кучу ошибок.

Куб.ч:

#include "stdafx.h"
#ifndef CUBE_H
#define CUBE_H

struct PlayerCube
{
  //code

};

#endif //CUBE_H

Куб.cpp:

#include "cube.h"
#include "stdafx.h"

using namespace std;

PlayerCube::PlayerCube(){}

void PlayerCube::cube_movement(){}

void PlayerCube::show_cube(){}

Главный:

#include "cube.h"
#include "stdafx.h"

using namespace std;

int main ()
{
    //code
}

любые идеи помогут! :)

РЕДАКТИРОВАТЬ: Ответ Китса уменьшил мои ошибки с 96 до 3!

Теперь у меня есть только 3 ошибки C2679, в которых говорится, что «двоичный >>: оператор не найден»

РЕДАКТИРОВАТЬ: Выяснил свои проблемы, осталась еще одна!

Все строится нормально, но когда я запускаю свою программу, она вылетает, ".exe перестал работать"?


person Tom    schedule 22.10.2014    source источник
comment
Всегда делайте #include "stdafx.h" первым включенным. ссылка   -  person crashmstr    schedule 22.10.2014
comment
Каковы ваши ошибки?   -  person Lochemage    schedule 22.10.2014
comment
Из того, что я вижу, все должно работать нормально, но вы не опубликовали весь код, поэтому ошибки могут быть частью того, что там есть. Одна небольшая возможная ошибка заключается в том, что заглавные буквы в вашем #include "cube.h" из main отличаются от фактического имени файла Cube.h, некоторым ОС это не нравится, и поэтому на самом деле они не будут ссылаться на файл, вы получите ошибки на все, что пытается ссылаться на куб.   -  person Lochemage    schedule 22.10.2014
comment
извините, большинство моих ошибок являются необъявленными ошибками идентификации и должны иметь класс/структуру/объединение   -  person Tom    schedule 22.10.2014


Ответы (1)


Это характерно для Visual Studio (предварительно скомпилированные заголовки):

  • Удалить включение stdafx.h из cube.h
  • Всегда сначала включайте stdafx.h в файлы cpp

Ваш код становится:

Куб.ч:

#ifndef CUBE_H
#define CUBE_H

struct PlayerCube
{
  //code

};

#endif //CUBE_H

Куб.cpp:

#include "stdafx.h"
#include "cube.h"

using namespace std;

PlayerCube::PlayerCube(){}

void PlayerCube::cube_movement(){}

void PlayerCube::show_cube(){}

Главный:

#include "stdafx.h"
#include "cube.h"

using namespace std;

int main ()
{
    //code
}

Если у вас все еще есть ошибки, укажите их в своем вопросе.

person KeatsPeeks    schedule 22.10.2014