Hey danke david_pb du hast mir den entscheidenden Hinweis gegeben.
Das Problem war unter Anderem, dass ich wie in C#/Java die Funktionen direkt in die Klassendefinition mit reingeschrieben habe ( also nur 1 Datei anstelle von 2 ).
Ich habe das jetzt aufgeteilt und die vorherigen Lösungsvorschläge mit eingebaut. Jetzt geht es.
Hier noch der Inhalt aller Dateien, falls noch mal jemand so ein Problem hat.
Grüße
classA.h
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#ifndef CLASSA_H
#define CLASSA_H
class B;
#include "classB.h"
class A
{
public:
B* b;
void funcA();
};
#endif
|
classB.h
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#ifndef CLASSB_H
#define CLASSB_H
class A;
#include "classA.h"
class B
{
public:
A* a;
void funcB();
};
#endif
|
classA.cpp
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
#include "classA.h"
void A::funcA()
{
b->funcB();
}
|
classB.cpp
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
#include "classB.h"
void B::funcB()
{
a->funcA();
}
|
main.cpp
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include "classA.h"
#include "classB.h"
int main(int argc, char** args)
{
A a;
B b;
a.b = &b;
b.a = &a;
return 0;
}
|