Hoi, Ik heb flink gegoogled, maar geen antwoord kunnen vinden. Ik hoop dat jullie mij hiermee kunnen helpen.
Onderstaande code compiled prima, maar at runtime blijken de pointers naar niets te wijzen.
Moet ik pointers anders toewijzen in een initialization list, of gaat er iets fout met het doorpasen van de argumenten van de derived naar de base class? Of doe ik nog iets anders fout hier?
Ik gebruik MSVC9 op windows XP.
Bedankt!
Onderstaande code compiled prima, maar at runtime blijken de pointers naar niets te wijzen.
Moet ik pointers anders toewijzen in een initialization list, of gaat er iets fout met het doorpasen van de argumenten van de derived naar de base class? Of doe ik nog iets anders fout hier?
Ik gebruik MSVC9 op windows XP.
Bedankt!
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| // forward declarations class CGfx; class CData; // derived class CExecutiveKeyboard : public CExecutive { public: CExecutiveKeyboard(CData* pcData_, CGfx* pcGfx_); ~CExecutiveKeyboard(void); }; CExecutiveKeyboard::CExecutiveKeyboard(CData* pcData_, CGfx* pcGfx_) : CExecutive(pcData_, pcGfx_) { } CExecutiveKeyboard::~CExecutiveKeyboard(void) { } //base class CExecutive { public: CExecutive(CData* pcData_, CGfx* pcGfx); ~CExecutive(void); protected: CData* _pcData; CGfx* _pcGfx; }; CExecutive::CExecutive(CData* pcData_, CGfx* pcGfx_) : _pcData(pcData_), _pcGfx(pcGfx_) { } CExecutive::~CExecutive(void) { } //main int main(int argc, char* argv[]) { // initialize class instances CData cData; CGfx cGfx; CExecutiveKeyboard cE(&cData, &cGfx); return 1; } |