Maison  >  Article  >  développement back-end  >  Erreur de compilation C++ : Nom complet introuvable, comment le modifier ?

Erreur de compilation C++ : Nom complet introuvable, comment le modifier ?

WBOY
WBOYoriginal
2023-08-22 10:48:141099parcourir

C++ est un langage de programmation largement utilisé dans la programmation au niveau système et le calcul haute performance. Mais lors de l’utilisation du C++, nous rencontrons souvent des erreurs de compilation. Dans cet article, nous aborderons une erreur courante de compilation C++ : nom complet introuvable et comment la corriger.

1. Description du problème

Lors de la compilation du code C++, le compilateur peut signaler les erreurs suivantes :

error: ‘someIdentifier’ was not declared in this scope

ou

error: ‘someIdentifier’ is not a member of ‘someObject’

Ces erreurs indiquent que le compilateur ne trouve pas la définition d'un certain nom dans le code.

2. Cause du problème

C++ est un langage typé statiquement, ce qui signifie que les variables ou fonctions doivent être déclarées ou définies avant d'être utilisées. Si un identifiant n'est pas déclaré ou défini avant d'être utilisé, le compilateur ne peut pas comprendre la signification de l'identifiant.

Par exemple, considérons l'extrait de code C++ suivant :

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

Si someFunction() n'est pas déclaré ou défini dans cet extrait de code, le compilateur générera une erreur de nom introuvable. someFunction()进行声明或定义,编译器就会出现未找到名称的错误。

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

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

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

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

三、解决方案

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

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

void someFunction(); // 函数声明

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

void someFunction() { // 函数定义
    // ...
}

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

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

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

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

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

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

De même, si vous essayez d'utiliser un membre inexistant dans un objet, vous obtiendrez également une erreur de nom introuvable. Par exemple, considérons le code suivant :

rrreee

Dans cet extrait de code, nonExistentMethod() est une fonction membre qui n'existe pas. Par conséquent, le compilateur se plaindra lorsqu’il essaiera de l’utiliser.

3. Solution🎜🎜Afin de résoudre l'erreur "nom complet introuvable", nous devons déclarer ou définir l'identifiant manquant dans le code. 🎜🎜Pour les fonctions et les variables, nous pouvons nous assurer qu'elles sont définies en les déclarant avant leur première utilisation. Par exemple : 🎜rrreee🎜Dans cet extrait de code, nous nous assurons que someFunction() est défini par la déclaration de fonction void someFunction();. Sans cette déclaration, le compilateur ne comprendrait pas la signification de someFunction(). 🎜🎜Pour les membres objets, nous devons nous assurer que la méthode utilisée a été déclarée ou définie dans la classe. Par exemple : 🎜rrreee🎜Dans cet extrait de code, nous nous assurons que someMethod() est déclaré ou défini dans la classe. Sans cette déclaration ou définition, le compilateur peut ne pas comprendre la signification de la fonction membre. 🎜🎜4. Résumé🎜🎜Lors de l'écriture de code C++, nous devons déclarer ou définir les fonctions, variables et membres d'objet utilisés, sinon le compilateur ne pourra pas comprendre leur signification. Lorsqu'une erreur « nom complet introuvable » se produit, nous devons rechercher et nous assurer que l'identifiant manquant a été correctement déclaré ou défini. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn