12. juli 2004 - 11:11Der er
5 kommentarer og 1 løsning
#include ,#pragma once, #ifndef problem
Hejsa
Jeg har en klasse (CEPSSimDlg) der har en attribut af en anden klassetype (CSerialCom). Denne er lavet som private i CEPSSimDlg klassen. For at få adgang fra CSerialCom til CEPSSimDlg, har jeg givet den følgende attribut:
CEPSSimDlg* m_pPar;
Når jeg bruger m_pPar kan compileren ikke finde ud af hvad m_pPar er, den skriver at det ikke er en pointer til en klasse/struct/union. Jeg er ret sikker på problemet ligger i hvilke filer der skal inkluderes hvor. Hver af de to klasser har en .h og en .cpp fil. Men hvor skal hvad inkluderes ? Skal jeg benytte #ifndef, #define, #endif ? Da det er et VC .net 2003 projekt findes linien "#pragma once" i alle header filer, kan det betyde noget ? Håber nogen kan hjælpe.
Nu har jeg fundet fejlen, det var ikke en forward erklæring der skulle til, men fordi jeg brugte en medlemsvariabel i en static metode, så kunne compileren ikke finde ud af hvad det var for en variabel, selvfølgelig. Tak for svarene.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.