Heim > Backend-Entwicklung > C++ > Hauptteil

C++-Kompilierungsfehler: Vollständig qualifizierter Name nicht gefunden, wie kann ich ihn ändern?

WBOY
Freigeben: 2023-08-22 10:48:14
Original
1149 Leute haben es durchsucht

C++ ist eine Programmiersprache, die häufig in der Systemebenenprogrammierung und im Hochleistungsrechnen verwendet wird. Bei der Verwendung von C++ treten jedoch häufig Kompilierungsfehler auf. In diesem Artikel besprechen wir einen häufigen C++-Kompilierungsfehler – vollständig qualifizierter Name nicht gefunden – und wie man ihn beheben kann.

1. Problembeschreibung

Beim Kompilieren von C++-Code meldet der Compiler möglicherweise die folgenden Fehler:

error: ‘someIdentifier’ was not declared in this scope
Nach dem Login kopieren

oder

error: ‘someIdentifier’ is not a member of ‘someObject’
Nach dem Login kopieren

Diese Fehler weisen darauf hin, dass der Compiler die Definition eines bestimmten Namens im Code nicht finden kann.

2. Ursache des Problems

C++ ist eine statisch typisierte Sprache, was bedeutet, dass Variablen oder Funktionen vor ihrer Verwendung deklariert oder definiert werden müssen. Wenn ein Bezeichner vor seiner Verwendung nicht deklariert oder definiert wird, kann der Compiler die Bedeutung des Bezeichners nicht verstehen.

Betrachten Sie beispielsweise den folgenden C++-Codeausschnitt:

int main() {
    someFunction();
    return 0;
}
Nach dem Login kopieren

Wenn someFunction() in diesem Codeausschnitt nicht deklariert oder definiert ist, gibt der Compiler einen Fehler aus, bei dem der Name nicht gefunden wurde. someFunction()进行声明或定义,编译器就会出现未找到名称的错误。

同样,如果尝试在一个对象中使用不存在的成员,也会产生未找到名称的错误。例如,考虑以下代码:

class SomeClass {
public:
    void someMethod();
};

int main() {
    SomeClass obj;
    obj.nonExistentMethod();
    return 0;
}
Nach dem Login kopieren

在该代码片段中,nonExistentMethod()是一个不存在的成员函数。因此,在尝试使用它时编译器会报错。

三、解决方案

为了解决“未找到完全限定的名称”的错误,我们需要在代码中对缺失的标识符进行声明或定义。

对于函数和变量,我们可以在它们第一次被使用之前通过声明来确保它们已经定义。例如:

void someFunction(); // 函数声明

int main() {
    someFunction();
    return 0;
}

void someFunction() { // 函数定义
    // ...
}
Nach dem Login kopieren

在该代码片段中,我们通过函数声明 void someFunction(); 来确保 someFunction() 已经定义。如果没有该声明,编译器将无法理解 someFunction() 的含义。

对于对象成员,我们需要确保使用的方法已经在该类中声明或定义。例如:

class SomeClass {
public:
    void someMethod();
};

int main() {
    SomeClass obj;
    obj.someMethod();
    return 0;
}

void SomeClass::someMethod() { // 成员函数定义
    // ...
}
Nach dem Login kopieren

在该代码片段中,我们确保 someMethod()

Wenn Sie versuchen, ein nicht vorhandenes Element in einem Objekt zu verwenden, erhalten Sie ebenfalls die Fehlermeldung „Name nicht gefunden“. Betrachten Sie beispielsweise den folgenden Code:

rrreee

In diesem Codeausschnitt ist nonExistentMethod() eine Memberfunktion, die nicht existiert. Daher wird sich der Compiler beschweren, wenn er versucht, es zu verwenden.

3. Lösung🎜🎜Um den Fehler „vollständig qualifizierter Name nicht gefunden“ zu beheben, müssen wir die fehlende Kennung im Code deklarieren oder definieren. 🎜🎜Bei Funktionen und Variablen können wir sicherstellen, dass sie definiert sind, indem wir sie deklarieren, bevor sie zum ersten Mal verwendet werden. Zum Beispiel: 🎜rrreee🎜In diesem Codeausschnitt stellen wir sicher, dass someFunction() durch die Funktionsdeklaration void someFunction(); definiert ist. Ohne diese Deklaration würde der Compiler die Bedeutung von someFunction() nicht verstehen. 🎜🎜Für Objektmitglieder müssen wir sicherstellen, dass die verwendete Methode in der Klasse deklariert oder definiert wurde. Zum Beispiel: 🎜rrreee🎜In diesem Codeausschnitt stellen wir sicher, dass someMethod() in der Klasse deklariert oder definiert ist. Ohne diese Deklaration oder Definition versteht der Compiler möglicherweise die Bedeutung der Memberfunktion nicht. 🎜🎜4. Zusammenfassung🎜🎜Beim Schreiben von C++-Code müssen wir die verwendeten Funktionen, Variablen und Objektmitglieder deklarieren oder definieren, sonst kann der Compiler ihre Bedeutung nicht verstehen. Wenn der Fehler „vollständig qualifizierter Name nicht gefunden“ auftritt, müssen wir den fehlenden Bezeichner finden und sicherstellen, dass er korrekt deklariert oder definiert wurde. 🎜

Das obige ist der detaillierte Inhalt vonC++-Kompilierungsfehler: Vollständig qualifizierter Name nicht gefunden, wie kann ich ihn ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage