Sie müssen die Reihenfolge der Mitglieder von UserInformation
ändern und struct UserInfo
über die Deklaration von getInfo
setzen. Der Compiler beklagt sich, dass er die Signatur für getInfo
nicht ermitteln kann, da die Definition seines Rückgabetyps noch nicht erkannt wurde.
Auch wenn Sie eine Struktur von der Funktion zurückgeben, muss der Typ der Struktur für die Aufrufer sichtbar sein. Sie müssen also auch die Struktur public
erstellen.
Es ist sinnvoll, den verschachtelten Strukturtyp öffentlich zu machen, da der Benutzercode ihn verwenden kann. Legen Sie außerdem die Deklaration der Struktur vor dem Zeitpunkt ihrer ersten Verwendung ab. Außerhalb des Klassenbereichs verwenden Sie die Bereichsauflösung :: , um auf verschachtelte Typen zu verweisen.
%Vor% Wenn die Elementfunktion öffentlich ist, muss der Rückgabetyp öffentlich sichtbar sein! Verschieben Sie daher die innere Strukturdefinition in den Abschnitt public
.
Beachten Sie auch, dass vor die Funktion definiert werden muss, die es verwendet.
Mach einfach UserInformation::userInfo UserInformation::getInfo(int userId)
.
Außerdem sollten Sie userInfo
public deklarieren.
Tags und Links class c++ function struct class-members