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.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
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.