Komischer Compiler fehler???
-
Folgender Code;
das Objekt "CMyData" kann er nicht finden.. wobei diese Klasse in "TimerTest.h" implementiert ist...und ich diese auch included habe hier??
blicks nich#ifndef DLGSHOWDATA_H #define DLGSHOWDATA_H #pragma once #include "resource.h" #include "TimerTest.h" #define TIMER_EVENT 1 // DlgShowData dialog class DlgShowData : public CDialog{ DECLARE_DYNAMIC(DlgShowData) CStatic *pData; int iZ; CMyData *pCData; .... }; #endif
-
Vermutlich gegenseitige Includedirektiven in den Headerdateien. Wie sieht TimerTest.h aus?
-
TimerTest.h:
// TimerTest.h : Hauptheaderdatei für die TimerTest-Anwendung // #pragma once #include "DlgShowData.h" #ifndef __AFXWIN_H__ #error 'stdafx.h' muss vor dieser Datei in PCH eingeschlossen werden. #endif #include "resource.h" // Hauptsymbole class CMyData{ private: int i; public: CMyData(int i){this->i=i;} int getData(){ return i;} void setData(int i){ this->i=i; } };Ist hier der fehler?
Allerdings muss ich DlgShowData includieren, da ich in der klasse auch noch ne anderen Klasse habe, die objekte der DlgShowData klasse benutzt!!
Kannst du mit paar Tipps geben zwecks Header includeing
-
BorisDieKlinge schrieb:
Ist hier der fehler?
Ja. Die Header binden sich gegenseitig ein. Das kann aber nicht funktionieren, eine muss hinterher vor der anderen stehen.
Allerdings brauchst du in DlgShowData.h die Includedirektive für TimerTest.h nicht. Du hast da nur einen Zeiger auf CMyData, dafür reicht eine Vorwärtsdeklaration.
-
was ist eine vorwärtsdeklaration?
-
Was ist eine Suchfunktion?

http://www.c-plusplus.net/forum/viewtopic-var-t-is-159765-and-highlight-is-vorw�rtsdeklaration.html