호출에 일치하는 함수가 없다는 것은 일부 특정 함수를 호출하지만 해당 함수의 ID가 정의된 함수의 인수와 일치하지 않는 경우를 의미합니다. 따라서 C++에 대해 '호출에 일치하는 함수가 없습니다'라는 오류가 발생합니다. 컴파일러가 일치하는 메서드가 없다고 명시할 때마다 일반적으로 컴파일러가 함수에 매개변수를 지정한 것과 동일한 이름으로 메서드를 식별했음을 나타냅니다.
따라서 잘못된 유형의 지정된 메소드나 부적절한 매개변수 세트를 함수에 계속 전달하는 경우입니다. 함수 정의는 컴파일러에 대한 메소드 이름과 메소드 호출 방법을 지정합니다. 함수의 전체 내용이 명시적으로 선언됩니다. 이 글에서는 C++에서 '호출에 일치하는 함수가 없습니다'라는 오류가 어떻게 나타나는지에 대해 설명하겠습니다.
클래스의 객체 사용
이 시나리오에서는 호출 중에 함수 매개변수가 일치하지 않으므로 참조가 필요한 곳에 포인터를 전달하고 함수 호출에서 다른 클래스 참조 유형을 사용하려고 합니다. 함수를 호출했지만 인수의 함수 정의가 일치하지 않을 때마다 'C++ 호출에 일치하는 함수가 없습니다'라는 오류가 발생합니다.
이제 오류를 수정해야 합니다. 이를 위해 함수 정의 중에 적절한 일치 매개변수를 제공합니다. 코드와 자세한 설명은 아래에서 확인할 수 있습니다.

코드 시작 부분에는 입력 및 출력 기능에 사용되는
다음 줄에서는 또 다른 함수 setValue()를 호출합니다. 이 메소드는 변수 'value'를 인수로 보유합니다. 인수로 전달된 값을 증가시킵니다. 그런 다음 main() 함수를 호출하면 정수 데이터 유형을 갖는 'argc'와 문자 데이터 유형의 'argv' 포인터가 인수로 제공됩니다. 'argc'는 아니오입니다. 운영 체제의 코드에 제공되는 매개변수입니다. 'argv'는 매개변수의 모음입니다.
이제 'A' 클래스의 'obj' 객체를 생성합니다. setValue() 함수를 호출합니다. 'obj'가 인수로 전달됩니다. 그러나 우리는 객체를 클래스와 연결하지 않았습니다. 이것이 바로 setValue() 함수를 호출할 때 setValue() 함수를 호출하는 클래스가 없기 때문에 오류를 반환하는 이유입니다. 위 코드에서는 인수를 호출하는 setValue() 함수 내에서 클래스 객체를 전달하지만, setValue() 함수 정의를 확인하면 전달 인수 값을 정수로 가정합니다. 코드를 종료하기 위해 'return 0' 명령을 활용했습니다. 여기서 위에서 언급한 코드의 출력을 확인할 수 있습니다.

위에서 언급한 코드를 실행한 후 'A에 대한 호출에 일치하는 함수가 없습니다'라는 오류가 발생합니다.
이 오류를 해결하는 방법
메소드 호출 중에 이 오류를 수정하려면 함수에 적절한 해당 매개변수를 제공해야 합니다. 이 오류를 해결하는 다른 방법은 서로 다른 오버로드된 함수가 서로 다른 매개변수를 갖도록 만드는 것입니다. 여기서는 main() 함수의 인수를 수정합니다. 따라서 C++ 오류에 대한 '호출에 일치하는 함수가 없습니다'가 제거됩니다. 코드와 자세한 설명은 아래에서 확인할 수 있습니다.

표준 네임스페이스를 사용한 후 헤더 파일
다음 단계에서는 main() 메서드를 호출합니다. main() 함수 내에서는 정수 데이터 유형의 'argc'와 문자 데이터 유형의 'argv'를 인수로 제공합니다. 'argc'는 프로그램에서 운영 체제가 제공하는 매개변수의 개수를 나타냅니다. 'argv'는 매개변수 컬렉션입니다. 이제 'obj'라는 클래스 'A'의 객체를 만듭니다. 변수 'value'를 정수 데이터 유형으로 초기화했습니다. 객체의 setValue() 메소드를 활용하고 이 함수의 매개변수로 '값'을 설정했습니다.
마지막으로 'return 0'을 추가하여 프로그램을 종료합니다. main() 함수에 함수와 해당 인수의 동일한 데이터 유형을 입력해야 한다는 점을 기억하십시오. 그런 다음 해당 함수를 객체에 전달하고 반환했습니다. 여기서 위에서 언급한 코드의 출력을 확인할 수 있습니다.

결론
이번 글에서는 '호출에 일치하는 기능이 없습니다' 오류가 발생하는 이유와 해결 방법을 살펴보았습니다. 이 오류가 발생할 때마다 필요한 메소드의 매개변수와 해당 데이터 유형을 확인해야 합니다. 함수 인수에 인수를 제공하는 동안 실수를 범합니다. 매개변수가 함수와 일치하지 않습니다. 지정된 메소드에 일치하는 매개변수를 제공해야 할 수도 있습니다. 아니면 동일한 데이터 유형을 가진 새 함수를 추가해야 합니다. 프로그램에서 해당 기능에 적합한 매개변수를 확인하고 추가하면 '호출에 일치하는 기능이 없습니다'라는 오류가 해결됩니다.
작가 소개
칼썸비비
안녕하세요. 저는 프리랜서 작가이며 주로 Linux 및 기타 기술 관련 콘텐츠에 대한 글을 씁니다.