Behebung von „Fehler: Anfrage für Mitglied ‚...‘ in ‚...‘, das vom Nicht-Klassentyp ist“
Wenn in C die Fehlermeldung „Fehler: Anforderung für Mitglied ‚...‘ in ‚...‘, das vom Nicht-Klassentyp ist“ auftritt, deutet dies häufig auf ein Problem mit der Objektinstanziierung und dem Zugriff auf Klassenmitglieder hin. Um dieses Problem zu beheben, untersuchen wir den bereitgestellten Code und die Grundursache des Fehlers.
Der Code definiert eine Klasse Foo mit zwei Konstruktoren: einem, der keine Argumente akzeptiert, und einem, der ein Argument akzeptiert. Die Absicht besteht darin, Objekte von Foo mit beiden Konstruktoren zu erstellen. Beim Versuch, ein Objekt mit dem Konstruktor ohne Argumente zu erstellen, tritt jedoch ein Fehler auf.
Bei der Untersuchung liegt das Problem in der folgenden Zeile:
Foo foo2();
Der Compiler interpretiert diese Zeile als eine Funktionsdeklaration mit dem Namen „foo2“ und dem Rückgabetyp „Foo“. Der beabsichtigte Zweck besteht jedoch darin, ein Objekt der Klasse Foo mithilfe des Standardkonstruktors zu deklarieren und zu instanziieren. Um dieses Problem zu beheben, sollte die Syntax wie folgt geändert werden:
Foo foo2;
Durch einfaches Entfernen der Klammern interpretiert der Compiler die Zeile nun korrekt als Objektdeklaration und Instanziierung und verwendet den Standardkonstruktor zum Initialisieren des foo2-Objekts .
Diese Änderung ermöglicht, dass der Code wie erwartet kompiliert und ausgeführt wird. Objekte können jetzt mit beiden Konstruktoren erstellt werden und auf Memberfunktionen kann problemlos zugegriffen werden. Denken Sie daher daran, die richtige Syntax für Objektdeklarationen und Instanziierungen zu verwenden, um diese Art von Fehlern bei der C-Programmierung zu vermeiden.
Das obige ist der detaillierte Inhalt vonWarum tritt in C der Fehler „Fehler: Anforderung für Mitglied „...' in „…' auf, das nicht zum Klassentyp gehört, und wie kann das Problem behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!