Hallo Adok,
laut den Release Notes des pakets sollte das Microsoft® Visual Studio® 2005 Team Suite Service Pack 1 (in der richtigen Sprache) für die Professional Edition von Visual Studio 2005 ausgelegt sein. Hast du dieses Paket probiert?
regards paralax
Beiträge von paralax
-
-
#include "A.h"
#include "B.h"
main()
{
A a(NULL);
B b(&a);
a.SetB(&b);
} -
Zitat von buechsengustel
paralax: Shine hatte schon recht, dein Code laesst sich zwar vielleicht kompilieren, aber nicht verwenden: Versuch mal, ein Objekt der Klasse A anzulegen. Dazu wuerdest du zuerst ein Objekt der Klasse B benoetigen, und umgekehrt genauso.
ja da hast du recht in meinem fall müßt man einmal nen nullptr setzen und könnt das nie wieder umstellen, da müßt man halt ne setmethode einführen und das im nachhinein zurechtbiegen, dann ginge das ohne probleme
-
Zitat von Shine
was aber durchaus net geht, is, wenn du für beide klassen den pointer auf die andere klasse im constructor setzen willst (also mit übergabe) und es gibt keine andere möglichkeit ein objekt zu instanzieren und wenn der pointerwert ungleich null ist, weil dann is es wirklich henne-ei, aber das kann man ja mithilfe von nachträglichem setzen bzw. mit hilfe des null lassens umgehen
lg Shine
file: A.h
class B; // forward
class A
{
public:
A(B*b);
private:
B* b;
}file: a.cpp
#include "A.h"
#include "B.h"A:A(B*b){this->b=b;}
file: B.h
class A; // forward
class B
{
public:
B(A*a);
private:
A* a;
}file: b.cpp
#include "A.h"
#include "B.h"B:B(a*a){this->a=a;}
in den cpp files ist es dann auch kein problem ganz normal mit der jeweils anderen Klasse zu arbeiten, nur im header muß man aufpassen, daß keine zyklischen Abhängigkeiten auftauchen, z.b. eben durch forwards und pointer. Diese Sache macht man sich z.B. auch im PIMPL idiom zu Nutze.