Всем думаю понятно зачем нужны заголовочные файлы и как с ними работать. Я считал что и сам всё понимаю, но на практике столкнулся с ошибкой: 'C2011 Test: переопределение типа "class"', а вот и сам код собственно:
На практике оказалось что я не умею работать с заголовочными файлами и работали лишь функции в не класса, вот в спойлер поместил тестовый проект в котором только одна выше упомянутая ошибка, а в основном проекте выдало совсем другое, но там я делаю тоже самое. Ниже прикрепил фрагмент кода и ошибку с основного проекта.
LNK2019 ссылка на неразрешенный внешний символ "public: __thiscall wradchuk::Quad::Quad(void)" (??0Quad@wradchuk@@QAE@XZ) в функции "void __cdecl `dynamic initializer for 'quad''(void)" (??__Equad@@YAXXZ)
wradchuk::createWindow("Окно успешно создано!!!", 820, 640, 240, 10, 0, argc, argv);
wradchuk::Initialize();
quad = Quad();
glutDisplayFunc(Draw);
glutReshapeFunc(wradchuk::ReSize);
....
//File mylib.cpp
class Quad
{
public:
Point a, b, c, d;
Quad(){};
Quad(Point _a, Point _b, Point _c, Point _d)
{
a = _a; b = _b; c = _c; d = _d;
};
void drawQuad(float _x, float _y, float _z)
{
a.x=-_x; a.y= _y; a.z= _z;
b.x= _x; b.y= _y; b.z= _z;
c.x= _x; c.y=-_y; c.z= _z;
d.x=-_x; d.y=-_y; d.z= _z;
glVertex3f(a.x, a.y, a.z);
glVertex3f(b.x, b.y, b.z);
glVertex3f(c.x, c.y, c.z);
glVertex3f(d.x, d.y, d.z);
}
};
//File mylib.h
class Quad
{
public:
Point a, b, c, d;
Quad();
Quad(Point _a, Point _b, Point _c, Point _d);
void drawQuad(float _x, float _y, float _z);
};
В первом спойлере один проект, во втором другой. Проблема одна, а ошибки разные и я так и не нашел их решение. Надеюсь предоставленная информация достаточна и решение проблемы есть, хотелось бы услышать его.