1
In einer Quelldatei Ich habe 2 KlassendefinitionenC++ Unvollständige Klassentyp Zeiger
class Foo
{
public:
int * GetPtr(){
return Obj;
}
int * Obj;
}
class Bar
{
public:
...
std::vector<Foo> FooVector;
}
Und in derselben Quelldatei Ich habe diese Funktion
void DoSomething()
{
Bar* barVar = CreateBar(); // Returns pointer to class object
Foo* fooVar = &barVar->FooVector[0];
if (fooVar->GetPtr()) // Error here
...
}
dies kompilieren Der Versuch, erhalte ich die Fehler "Zeiger auf unvollständige Klassenart nicht erlaubt", aber die Klasse ist ein paar Zeilen darüber definiert.
Bitte genaue Fehlermeldung einfügen. 'Foo * fooVar = & barVar-> FooVector [0]; 'ist falsch, benutze' Foo * fooVar = bar &&! barVar-> FooVector.empty()? & barVar-> FooVector [0]: nullptr; '. Setzen Sie Semikolons nach 'class'. Post echten Code. –
Bei der Erstellung eines [mvce] (http://stackoverflow.com/help/mcve) würden Sie wahrscheinlich das Problem selbst lösen, aber wenn Sie nicht zumindest das absolute Minimum haben würden, müssten wir Ihnen helfen. – kfsone
Ist 'Obj' wirklich' int * 'Typ? –