Problem mit Klassendefinition
-
da gibts keinen Code, genau das is es ja:
class TPyramidGroup{ public: TPyramidGroup(void); ~TPyramidGroup(void); };bzw:
TPyramidGroup::TPyramidGroup(void){ }mehr is da zur Zeit nicht mehr drinn, hab alles andere rausgenommenn um andere Fehler auszuschließen
-
Hallo
der Fehler klingt als würde in der CPP der Include des Headers fehlen.
Desweiteren solltest du die void weglassen, das ist alter C-Stil.bis bald
akari
-
hab die voids aus den Klammern usw. rausgenommen, bringt gar nix.
-
hab die eigene Header jetzt mal an die letzte Stelle gestellt, so dass vorher alles andere includiert wird, jetzt gehts, aber warum?
-
Welche Header hast Du sonst noch drin?
-
Hallo
ums nochmal konkret auszuschrieben
Der Header muß so aussehen// Include-Guards #ifndef PYRAMIDGROUP_H #define PYRAMIDGROUP_H class TPyramidGroup{ public: TPyramidGroup(); ~TPyramidGroup(); }; #endifund die Implementierung so
#include "PyramidGroup.h" TPyramidGroup::TPyramidGroup(){ }bis bald
akari
-
Ich würd prinzipiell das T vor dem Klassennamen weglassen, das ist das C von Borland. Oder wird es eine Komponente für den BCB?
Mach lieber nen eigenen Namespace drum.
-
ja tuts ja auch, nur jetzt hab ich in der .cpp die eigene Header an die letzte Stelle gestellt und jetzt funktionierts plötzlich...
-
Hi,
ich glaub #include Form1.h (also das eigentliche Fenster)
muss ganz oben stehen.Grüsse
-
hab ich mir auch immer gedacht, nur dann funktionierst nicht, warum auch immer es sind nur 2 Header eingebunden, die eigene und dann noch eine mit globalen Definitionen usw.
mfg
Tom
-
Schau dir mal die Include-Guards an, vielleicht sind die in den beiden Headerdateien ja gleich.
-
was genau meinst du mit Include Guards?
mfg
Tom
-
Die Dinger hier
/ Include-Guards #ifndef PYRAMIDGROUP_H #define PYRAMIDGROUP_H
-
achso, nein, ist nicht der Fall
mfg
Tom
-
Heiteres Fehlerraten.

Poste doch mal den anderen Header mit den global Defs
-
.cpp, wie sie funktioniert:
#include "control.h" #include "SolarPyramid.h".h:
#ifndef SolarPyramidH #define SolarPyramidH
-
Vielleicht fehlt ja auch nur irgendwo ein abschließendes Semikolon nach einer Klassen- / Strukturdeklaration. Oder ähnliches.
-
nö hab alles aus der Klasse rausgenommen und damit ich so zeugs nicht übersehen kann, wenn ich die Header wieder vertausch gehts nicht mehr, so gehts aber.
mfg
Tom
-
Wenn es nicht zu groß wird, kannst du ja die beiden Headerdateien mal posten sonst wird das hier nur ein weiteres Raten.
-
#ifndef SolarPyramidH #define SolarPyramidH #include <vcl.h> #include <fstream.h> #include "sensor.h" #include "SensorAnalog.h" #include "ZahlerEnergy.h" #include "Actuators.h" #include "DataStore.h" #include "filenames.h" #include "GraphStore.h" class TGroupedPyramidSystem { public: TPyramidSystem* PyramidSystem[PYRAMID_NUMBER_OF]; int FirstValid(void); int PreviousValid(int iShown); int NextValid(int iShown); int LastValid(void); int Number(void); bool IsConnected(void); public: TGroupedPyramidSystem(void); ~TGroupedPyramidSystem(void); void BackgroundAllocations(void); void WriteNameList(void); void RelaysOnHand(void); void LookForWizardDigitalEingange(void); void LookForWizardRelays(void); void LookForWizardSMT(void); void LookForWizardPT1000(void); void LookForWizardDataStorage(void); void LookForWizardAnalog(void); void AnalogBelegung(int,int,char*); void RelayBelegung(int,int,char*); void SensorBelegung(int,int,char*); void PT1000Belegung(int,int,char*); void InputBelegung(int,int,char*); void WriteSetupToFile(void); void Report(ofstream&); void Report(char*); void Control(void); void ForceToMode(int iMode,int iHoure=0); void DisableAllControlComponents(void); void DeleteAllControlComponents(void); };mfg
Tom