Heim  >  Artikel  >  Backend-Entwicklung  >  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 namens ‚Funktion‘“ im C++-Code

王林
王林Original
2023-08-26 19:52:451523Durchsuche

解决C++代码中出现的“error: 'class' has no member named 'function'”问题

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.

  1. Falsch deklarierte Mitgliedsfunktion

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() {
  // 实现代码
}
  1. Mitgliedsfunktionen sind als privat oder geschützt definiert

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() {
  // 实现代码
}
  1. Member-Funktion ist im falschen Bereich definiert

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn