> 백엔드 개발 > C++ > 본문

C++ 컴파일 오류: 정규화된 이름을 찾을 수 없습니다. 수정하는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-08-22 10:48:14
원래의
1097명이 탐색했습니다.

C++는 시스템 수준 프로그래밍과 고성능 컴퓨팅에 널리 사용되는 프로그래밍 언어입니다. 하지만 C++을 사용하는 과정에서 컴파일 오류가 자주 발생합니다. 이 문서에서는 일반적인 C++ 컴파일 오류(정규화된 이름을 찾을 수 없음)와 이를 해결하는 방법에 대해 설명합니다.

1. 문제 설명

C++ 코드를 컴파일할 때 컴파일러에서

error: ‘someIdentifier’ was not declared in this scope
로그인 후 복사

또는

error: ‘someIdentifier’ is not a member of ‘someObject’
로그인 후 복사

오류를 보고할 수 있습니다. 이러한 오류는 컴파일러가 코드에서 특정 이름의 정의를 찾을 수 없음을 나타냅니다.

2. 문제의 원인

C++은 정적인 유형의 언어이므로 변수나 함수를 사용하기 전에 선언하거나 정의해야 합니다. 식별자를 사용하기 전에 선언하거나 정의하지 않으면 컴파일러는 식별자의 의미를 이해할 수 없습니다.

예를 들어 다음 C++ 코드 조각을 고려해보세요.

int main() {
    someFunction();
    return 0;
}
로그인 후 복사

someFunction()이 이 코드 조각에서 선언되거나 정의되지 않은 경우 컴파일러는 이름을 찾을 수 없음 오류를 발생시킵니다. 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()

마찬가지로 개체에 존재하지 않는 멤버를 사용하려고 하면 이름을 찾을 수 없다는 오류가 발생합니다. 예를 들어 다음 코드를 생각해 보세요.

rrreee

이 코드 조각에서 nonExistentMethod()는 존재하지 않는 멤버 함수입니다. 따라서 컴파일러는 이를 사용하려고 할 때 불평을 합니다.

3. 솔루션🎜🎜"정규화된 이름을 찾을 수 없음" 오류를 해결하려면 코드에서 누락된 식별자를 선언하거나 정의해야 합니다. 🎜🎜함수와 변수의 경우 처음 사용하기 전에 선언하여 정의되었는지 확인할 수 있습니다. 예: 🎜rrreee🎜이 코드 조각에서는 someFunction()이 함수 선언 void someFunction();에 의해 정의되었는지 확인합니다. 이 선언이 없으면 컴파일러는 someFunction()의 의미를 이해하지 못할 것입니다. 🎜🎜객체 멤버의 경우 사용된 메서드가 클래스에 선언되거나 정의되었는지 확인해야 합니다. 예: 🎜rrreee🎜이 코드 조각에서는 someMethod()가 클래스에서 선언되거나 정의되었는지 확인합니다. 이 선언이나 정의가 없으면 컴파일러는 멤버 함수의 의미를 이해하지 못할 수 있습니다. 🎜🎜4. 요약🎜🎜C++ 코드를 작성할 때 사용되는 함수, 변수 및 개체 멤버를 선언하거나 정의해야 합니다. 그렇지 않으면 컴파일러가 해당 의미를 이해할 수 없습니다. "정규화된 이름을 찾을 수 없음" 오류가 발생하면 누락된 식별자가 올바르게 선언되거나 정의되었는지 찾아서 확인해야 합니다. 🎜

위 내용은 C++ 컴파일 오류: 정규화된 이름을 찾을 수 없습니다. 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!