Heim >Backend-Entwicklung >C++ >Lösen Sie das Problem „Fehler: ‚Klasse' hat kein Mitglied namens ‚Funktion'' im C++-Code
Lösen Sie das Problem „Fehler: ‚Klasse‘ hat kein Mitglied mit dem Namen ‚Funktion‘“ im C++-Code
Beim Programmieren in C++ treten häufig verschiedene Kompilierungsfehler auf. Einer der häufigsten Fehler ist „Fehler: ‚Klasse‘ hat kein Mitglied namens ‚Funktion‘“. Dieser Fehler weist darauf hin, dass die aufgerufene Memberfunktion nicht in einer Klasse gefunden wurde. Im Folgenden stellen wir einige häufige Situationen und Lösungen vor.
In diesem Fall ergibt sich das Problem normalerweise aus der Inkonsistenz zwischen der Definition und Implementierung der Klasse. Dieser Fehler tritt auf, wenn wir eine Mitgliedsfunktion in der Definition einer Klasse deklarieren, aber vergessen, diese Funktion tatsächlich in der Implementierung zu definieren.
Der Beispielcode lautet wie folgt:
class MyClass { public: void myFunction(); // 声明成员函数 }; int main() { MyClass obj; obj.myFunction(); // 调用成员函数 return 0; }
Lösung: Fügen Sie die entsprechende Memberfunktionsdefinition in der Implementierung der Klasse hinzu.
void MyClass::myFunction() { // 实现代码 }
Wenn eine Mitgliedsfunktion als privat oder geschützt definiert ist, wird ein Fehler gemeldet, wenn die Funktion an einer anderen Stelle außerhalb der Klasse aufgerufen wird.
Der Beispielcode lautet wie folgt:
class MyClass { private: void myFunction(); // 私有成员函数 }; int main() { MyClass obj; obj.myFunction(); // 调用私有成员函数 return 0; }
Lösung: Ändern Sie die private Mitgliedsfunktion in öffentlich oder fügen Sie der Klasse die entsprechende Schnittstellenfunktion hinzu, um die private Mitgliedsfunktion aufzurufen.
class MyClass { public: void myInterface() { myFunction(); // 调用私有成员函数 } private: void myFunction(); }; int main() { MyClass obj; obj.myInterface(); // 调用接口函数 return 0; } void MyClass::myFunction() { // 实现代码 }
Wenn eine Member-Funktion im falschen Bereich definiert ist, kann der Compiler die Member-Funktion nicht finden und meldet einen Fehler.
Der Beispielcode lautet wie folgt:
class MyClass { public: void myFunction(); }; void myFunction() { // 实现代码 } int main() { MyClass obj; obj.myFunction(); // 调用成员函数 return 0; }
Lösung: Definieren Sie die Memberfunktion im richtigen Klassenbereich.
class MyClass { public: void myFunction(); }; void MyClass::myFunction() { // 实现代码 } int main() { MyClass obj; obj.myFunction(); // 调用成员函数 return 0; }
Zusammenfassung
Wenn im C++-Code der Fehler „Fehler: ‚Klasse‘ hat kein Mitglied mit dem Namen ‚Funktion‘“ auftritt, müssen wir prüfen, ob die oben genannten Situationen im Code vorhanden sind. Die ordnungsgemäße Deklaration von Mitgliedsfunktionen, die Änderung privater Mitgliedsfunktionen in öffentliche oder das Hinzufügen von Schnittstellenfunktionen sowie die Definition von Mitgliedsfunktionen im richtigen Bereich sind wirksame Möglichkeiten, dieses Problem zu lösen. Indem wir den Code sorgfältig überprüfen und Korrekturen gemäß den oben genannten Lösungen vornehmen, können wir diesen Fehler erfolgreich beheben und unser C++-Programm reibungslos kompilieren und ausführen.
Das obige ist der detaillierte Inhalt vonLösen Sie das Problem „Fehler: ‚Klasse' hat kein Mitglied namens ‚Funktion'' im C++-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!