기본 매개 변수 값이있는 함수 및 함수 오버로딩

. 기본값이 있는 함수
1.
함수를 정의 할 때 함수의 형식 매개 변수에 대해 미리 결정된 값을 설정할 수 있습니다. 함수 호출시 실제 매개 변수가 주어지면 실제 매개 변수 값이 사용되며, 그렇지 않으면 미리 설정된 기본값이 다음과 같습니다. 사용 된 매개 변수 값 :

void func(int a=3,int b=4)
{
    
    
	cout << a << " " << b<<endl;
}

int main()
{
    
    
	func();//使用默认参数
	func(1, 2);//使用形参
	//结果是3 4 1 2
}

참고 :
1. 기본 매개 변수가있는 형식 매개 변수는 형식 매개 변수 목록의 맨 오른쪽에 나열되어야합니다. 즉, 실제 매개 변수 값의 오른쪽에 기본값이없는 매개 변수가있을 수 없습니다. 형식 매개 변수의 조합에 대한 참여는 다음과 같이 호출 할 때 왼쪽에서 오른쪽으로 이루어집니다.

int add(int x,int y=5,int z=6);//正确
int add(int x=1,int y=5,int z);//错误
int add(int x=1,int y,int z=6);//错误

2. 함수 정의 이전에 함수 호출시 함수 선언에 기본값을 지정해야하며, 이때 함수 ​​정의에 기본값을 지정할 필요가 없습니다.
함수 선언시 기본값이 주어지면 함수 정의시에도 기본값이 주어집니다. 컴파일러에서 오류 메시지를 표시 할 수 있으므로 혼동을 피하기 위해 함수 선언시 기본값 만 제공하는 것이 좋습니다. .

3. 가상 함수가 클래스 상속에서 재정의 된 경우 가상 함수의 기본 매개 변수를 재정의하면 안됩니다. 가상 함수는 동적으로 바인드되지만 기본 매개 변수는 정적으로 바인드되기 때문입니다.

함수 오버로딩
1. 정의
오버로딩은 정적 다형성에 의해 실현되는 C ++ 다형성의 중요한 메커니즘이며 컴파일 단계에서 실현되는 다형성입니다.
(덧붙여서 다형성은 하나의 이름을 가진 다른 함수를 정의하는 것을 말합니다. 이러한 함수는 다르지만 유사한 연산을 수행하므로 동일한 함수 이름으로 다른 내용을 가진 함수를 호출 할 수 있습니다.)

2. 함수
C ++를 사용하면 비슷한 함수를 가진 함수를 동일한 범위에서 동일한 함수 이름으로 선언 할 수 있으므로 오버로드가 발생합니다. 사용하기 쉽고 기억하기 쉽습니다.

3. 사용 규칙
1. 함수가 오버로드되면 함수 유형 만 같을 수 없으며 매개 변수, 유형 및 순서의 수는 모두 동일합니다.
함수를 이런 방식으로 정의하면 컴파일러 시스템이 할 수 없기 때문입니다. 사용할 기능을 결정하십시오.

2. 함수가 오버로드되면 매개 변수 수, 매개 변수 유형 및 매개 변수 시퀀스가 ​​모두 같을
수 없습니다. 동일한 매개 변수를 사용하여 동일한 오버로드 된 함수를 정의한 후 컴파일러 시스템은 사용할 함수를 결정할 수 없습니다. .

3. 기능이 과부하되면 기능을 유사하거나 동일
하게 만들고 프로그램의 가독성을 높이고 이해하고 읽기 쉽게 만드십시오.

4.이 함수는 오버로드 된 함수와 기본 매개 변수가있는 함수가 될 수 없습니다.
매개 변수가 전달되지 않으면 시스템은 호출 할 매개 변수를 판별 할 수 없습니다.

추천

출처blog.csdn.net/qq_43530773/article/details/113786507