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

C++ 컴파일 오류 해결: '함수'는 'n'개의 인수를 사용하지 않습니다.

WBOY
풀어 주다: 2023-08-25 21:10:51
원래의
1476명이 탐색했습니다.

解决C++编译错误:'function' does not take 'n' arguments

C++ 컴파일 오류 해결: '함수'는 'n'개의 인수를 사용하지 않습니다.

C++ 프로그래밍에서는 다양한 컴파일 오류가 자주 발생합니다. 일반적인 오류 중 하나는 "'함수'가 'n'개의 인수를 취하지 않습니다"입니다. 이는 함수가 n개의 인수를 취하지 않음을 의미합니다.

이 오류는 일반적으로 함수가 호출될 때 발생합니다. 전달된 실제 매개변수가 함수 선언 시 필요한 매개변수 수와 일치하지 않거나 유형이 일치하지 않습니다. 이 오류를 해결하는 방법에는 여러 가지가 있습니다.

  1. 함수 호출 매개변수의 개수와 유형을 확인하세요
    먼저 함수 호출의 매개변수 개수와 유형이 함수 선언과 일치하는지 확인해야 합니다. 함수 선언에 n개의 매개변수가 필요한 경우 함수를 호출할 때 n개의 매개변수를 전달해야 하며 매개변수 유형은 선언과 일치해야 합니다. 예를 들어, 다음 샘플 코드에서 add() 함수는 선언 시 int 유형의 두 매개변수가 필요하지만 호출 시에는 하나의 매개변수만 전달됩니다.
#include <iostream>

int add(int a, int b)
{
    return a + b;
}

int main()
{
    int result = add(1);
    std::cout << result << std::endl;
    return 0;
}
로그인 후 복사

이 코드를 컴파일할 때 "'add'는 1개의 인수를 사용하지 않습니다."라는 오류가 발생합니다. 이 오류를 해결하는 방법은 add() 함수를 호출할 때 두 개의 int 유형 매개변수를 전달하는 것입니다.

int result = add(1, 2);
로그인 후 복사
  1. 함수 선언과 정의가 일치하는지 확인하세요
    함수 선언과 정의가 일치하지 않으면 컴파일 오류도 발생합니다. 함수 선언은 일반적으로 헤더 파일에 배치되고, 함수 정의는 일반적으로 소스 파일에 배치됩니다. 헤더 파일에 선언된 함수가 소스 파일에 정의된 함수 매개변수의 수나 유형과 일치하지 않으면 컴파일 오류가 발생합니다.

이 문제를 해결하는 방법은 함수의 선언과 정의가 일치하는지 확인하는 것입니다. 예를 들어, 다음 샘플 코드에서 add() 함수의 선언 및 정의는 매개변수 수와 일치하지 않습니다. 선언할 때는 int 유형의 매개변수 두 개가 필요하지만 정의할 때는 매개변수가 하나만 있습니다.

// 头文件 add.h
int add(int a, int b);

// 源文件 add.cpp
int add(int a)
{
    return a + 2;
}

// 主程序
#include <iostream>
#include "add.h"

int main()
{
    int result = add(1, 2);
    std::cout << result << std::endl;
    return 0;
}
로그인 후 복사

이 코드를 컴파일할 때 "'add'는 2개의 인수를 사용하지 않습니다."라는 오류가 발생합니다. 이 오류를 해결하는 방법은 함수가 정의될 ​​때 두 개의 int 유형 매개변수를 전달하여 선언과 일치하도록 만드는 것입니다.

// 源文件 add.cpp
int add(int a, int b)
{
    return a + b;
}
로그인 후 복사
  1. 함수 오버로딩 사용
    C++에서는 함수 오버로딩을 사용하여 매개변수 수가 일관되지 않는 문제를 해결할 수 있습니다. 함수 오버로딩은 동일한 범위에서 이름은 같지만 매개변수의 수나 유형이 다른 여러 함수를 정의하는 것을 의미합니다.

예를 들어 add() 함수를 오버로드하여 두 개 또는 세 개의 매개변수를 허용할 수 있습니다. 다음은 샘플 코드입니다.

#include <iostream>

int add(int a, int b)
{
    return a + b;
}

int add(int a, int b, int c)
{
    return a + b + c;
}

int main()
{
    int result1 = add(1, 2);
    std::cout << result1 << std::endl;

    int result2 = add(1, 2, 3);
    std::cout << result2 << std::endl;

    return 0;
}
로그인 후 복사

함수 오버로드를 사용하면 다양한 수의 매개변수를 사용하는 함수 호출에 유연하게 적응할 수 있으며 일관되지 않은 수의 매개변수로 인한 컴파일 오류를 방지할 수 있습니다.

프로그래밍에서 다양한 컴파일 오류가 자주 발생합니다. "'함수'는 'n'개의 인수를 사용하지 않습니다." 오류의 경우 함수 호출에서 매개변수의 수와 유형을 확인하여 함수 선언과 정의가 일치하는지 확인할 수 있습니다. , 함수 오버로딩 및 기타 방법을 사용하여 이 문제를 해결할 수 있습니다. 적시에 오류를 처리하고 디버깅하면 프로그래밍 효율성이 향상되고 더욱 강력하고 안정적인 코드를 작성하는 데 도움이 됩니다.

위 내용은 C++ 컴파일 오류 해결: '함수'는 'n'개의 인수를 사용하지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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