Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

LINK 2005. Problem z załączaniem plików nagłówkowych

Ostatnio zmodyfikowano 2019-03-17 10:58
Autor Wiadomość
Wuwus1
Temat założony przez niniejszego użytkownika
LINK 2005. Problem z załączaniem plików nagłówkowych
» 2019-03-17 10:10:49
Trafiłem na błąd, którego nie mogę się pozbyć, czytałem o nim na anglojęzycznych forach ale nic nie pomogło. Otóż podczas komplicaji dostaję błąd "public: _thiscall Controler::Controler(void)" (??0Controler@@QAE@XZ) alredy defined in Application.obj. Doszedłem jedynie do tego, że błąd pojawia się jedynie po załączeniu "Controler.h" do pliku TextPlus.h lub TextPlus.cpp.

Core.h
C/C++
#pragma once
#include "Controler.h"
#include "MyWindow.h"

#include "LooseWindow.h"

#include "CheckBox.h"
#include "ValueBox.h"
#include "TextBox.h"
#include "SliderBox.h"


sf::Event * Controler::eventPrt = nullptr;
float Controler::Scale = 1.0f;
float Controler::ScaleFactor = 0.2f;
unsigned int Controler::TextSize = 14;

TextPlus.h
C/C++
#pragma once
#include <SFML/Graphics.hpp>
#include "Controler.h"

#define _MARGINRL 2 //Margin Left Right
#define _MARGINTB 3 //Margin Top Bottom
...

ValueBox.h
C/C++
#pragma once
#include "Controler.h"
#include "BasicBox.h"
#include "Mouse.h"
#include <SFML/Graphics.hpp>
#include "TextPlus.h"
#include <string>
#include <vector>

#include <iostream>
#include <typeinfo>
#include <limits>

enum ValueType
...
P-174201
pekfos
» 2019-03-17 10:29:50
C/C++
sf::Event * Controler::eventPrt = nullptr;
float Controler::Scale = 1.0f;
float Controler::ScaleFactor = 0.2f;
unsigned int Controler::TextSize = 14;
To wygląda jak definicje składowych statycznych. W pliku .hpp. Definicje funkcji, metod, zmiennych, składowych statycznych muszą być w plikach CPP, nie HPP.
P-174202
YooSy
» 2019-03-17 10:30:10
Masz poprostu ponowną deklarację konstruktora klasy Contorler.
Błąd jest w tej klasie. Pokaż kod "Controler.h" i Controler.cpp.
Możliwe, że nie masz ustawionych guardów w pliku "Controler.h".
» Kurs C++Dzielenie kodu na kilka plików źródłowych lekcja
P-174203
Wuwus1
Temat założony przez niniejszego użytkownika
» 2019-03-17 10:58:04
pekfos: Ok przeniosłem definicje składowych do pliku Application.cpp
YooSy: Faktycznie, ja mam definicje class w pliku Controler.h a nie w Controler.cpp. Za dużo programowania szablonów klas :)
Dzięki za pomoc.
P-174204
« 1 »
  Strona 1 z 1