C++ 구문 오류를 해결하는 방법: '<' 앞에 정규화되지 않은 ID가 필요합니까?
C++를 개발하다 보면 다양한 오류에 자주 부딪히게 됩니다. 일반적인 오류 중 하나는 ''<' 앞에 정규화되지 않은 ID가 필요하다는 것입니다. 이 오류는 일반적으로 식별자가 어딘가에 누락되었지만 컴파일러가 '<' 기호를 찾았음을 의미합니다. 이 오류는 템플릿이나 일반 프로그래밍을 사용할 때 흔히 발생합니다.
이 문서에서는 이 구문 오류를 식별하고 수정하는 방법에 대해 논의하고 일반적인 오류의 몇 가지 예를 제공합니다.
1. 오류의 원인
일반적으로 '<' 토큰 이전에 예상되는 비정규 ID' 오류는 두 가지 일반적인 문제로 인해 발생합니다.
2. 오류 예 및 해결 방법
template<class T> class MyClass { public: T value; }; int main() { MyClass<int> obj; // 正确用法:给模板传入适当的参数 MyClass obj2; // 错误用法:未给模板传入参数 obj.value = 10; return 0; }
위 예에서는 MyClass
클래스를 정의할 때 템플릿 매개변수<클래스 T>
. obj
개체를 생성할 때 적절한 매개변수 <int>
를 템플릿에 성공적으로 전달했습니다. 그러나 obj2
개체를 생성할 때 매개변수를 템플릿에 전달하지 않았습니다. 이 경우 컴파일러는 오류를 보고하고 '<' 토큰 앞에는 정규화되지 않은 ID가 필요하다는 메시지를 표시합니다. 이 오류를 해결하려면 <int>
와 같은 적절한 템플릿 매개변수를 obj2
개체에 전달하기만 하면 됩니다. MyClass
类时,需要给它传入一个模板参数<class T>
。在创建对象obj
时,我们成功地给模板传入了一个适当的参数<int>
。但是在创建对象obj2
时,我们未给模板传入参数。这样一来,编译器就会报错并提示'expected unqualified-id before '<' token'。解决这个错误,我们只需给obj2
对象传入一个合适的模板参数,如<int>
。
示例一解决方法:
MyClass<int> obj2; // 给模板传入适当的参数
#include <iostream> int main() { std::cout << "Hello World" << std::endl return 0; }
在上述示例中,在输出语句std::cout << "Hello World" << std::endl
std::cout << "Hello World" << std::endl; // 添加分号
위 예의 출력 문 std::cout << << std::endl
뒤에는 세미콜론이 없습니다. 이러한 방식으로 컴파일러는 '<' 토큰 앞에 예상된 비정규화된 ID' 오류를 표시합니다. 이 오류를 해결하려면 명령문 끝에 세미콜론을 추가하기만 하면 됩니다.
위 내용은 C++ 구문 오류를 해결하는 방법: '<' 토큰 앞에 정규화되지 않은 ID가 필요합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!