Het probleem is dat class1 objecten van class2 moet kennen en andersom.
In Java was dit geen probleem; maar in C++ krijg je tijdens het compilen steeds errors....
Deze treden nu weer op:
Met deze 3 bestanden:
start.cpp
Class1.h
class2.h
Class2.cpp
En class1.cpp
Het is misschien handig om zelf te kijken; de source: DOWNLOAD
Ik weet echt niet wat er fout is
In Java was dit geen probleem; maar in C++ krijg je tijdens het compilen steeds errors....
Deze treden nu weer op:
code:
1
2
3
4
| [C++ Error] class2.h(10): E2303 Type name expected [C++ Error] class2.h(10): E2139 Declaration missing ; [C++ Error] class2.h(15): E2293 ) expected [C++ Error] start.cpp(11): E2316 'setClass' is not a member of 'class2' |
Met deze 3 bestanden:
start.cpp
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #include "class1.h" #include "class2.h" int main(void) { class1 c1; class2 c2; c1.setClass(&c2); c2.setClass(&c1); return 0; } |
Class1.h
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #ifndef class1_h #define class1_h #include "class2.h" class class1 { private: int getal; class2 *myClass; public: class1(void); int getGetal(void); void setClass(class2 *); }; #endif |
class2.h
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #ifndef class2_h #define class2_h #include "class1.h" class class2 { private: int getal; class1 *myClass; public: class2(void); int getGetal(void); void setClass(class1 *); }; #endif |
Class2.cpp
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #include "class2.h" class2 :: class2(void) { getal = 10; getGetal(); } int class2 :: getGetal(void) { return getal; } void class2 :: setClass(class1 *newClass) { *myClass = *newClass; } |
En class1.cpp
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #include "class1.h" #include <iostream.h> class1 :: class1(void) { getal = 5; cout<<getal<<endl; } int class1 :: getGetal(void) { return getal; } void class1 :: setClass(class2 *newClass) { *myClass = *newClass; } |
Het is misschien handig om zelf te kijken; de source: DOWNLOAD
Ik weet echt niet wat er fout is