frage zur vorwärtsdeklaration
-
Hi,
ich habe folgenden code in meinem main.cpp file:
class B; class A { public: B *_b; bool execute() { _b->execute(); return true; }; A(B *b) { _b = b; } }; class B { public: B(){counter = 0;}; bool execute() { return true; } } void main() { }das liefert folgende error message:
use of undefined type 'B'
.pop_back' must have class/struct/unionreicht hier nicht die vorwärtsdeklaration von B? Wie könnte ich das Problem
lösen. Die Klasse zuerst definieren geht nicht weil die wiederrum von anderen klassen abhängig ist.lg
-
Nein, an der STelle reicht sie nicht, da du ja auf die Details der Klasse zugreifst.
Was geht, ist in A execute nur zu deklarieren, und nachdem du B definierst, kannst du A::execute problemlos implementieren.
-
Aber zwischen A und B hab ich noch weitere klassen die auf die execute von A noch vorher zugreifen. also kann ich die execute nicht erst implementieren wenn ich B definiert habe. oder versteh ich da was falsch?
-
arghonaut schrieb:
deklarieren
-
hat funktioniert

danke