C 언어
이 튜토리얼에서는 예제를 통해 C++의 함수 오버로딩에 대해 알아볼 것입니다.
C++에서는 전달된 인수의 수 및/또는 유형이 다른 경우 두 함수의 이름이 같을 수 있습니다.
이름은 같지만 인수가 다른 이러한 함수를 오버로드된 함수라고 합니다. 예:
// same name different arguments
int test() { }
int test(int a) { }
float test(double a) { }
int test(int a, double b) { }
여기에서 4개의 함수는 모두 오버로드된 함수입니다.
이 4가지 함수의 반환 유형은 모두 동일하지 않습니다. 오버로드된 함수는 반환 유형이 다를 수도 있고 없을 수도 있지만 인수는 달라야 합니다. 예를 들어,
// Error code
int test(int a) { }
double test(int b){ }
여기에서 두 함수는 동일한 이름, 동일한 유형 및 동일한 수의 인수를 갖습니다. 따라서 컴파일러에서 오류가 발생합니다.
<시간>
// Program to compute absolute value
// Works for both int and float
#include <iostream>
using namespace std;
// function with float type parameter
float absolute(float var){
if (var < 0.0)
var = -var;
return var;
}
// function with int type parameter
int absolute(int var) {
if (var < 0)
var = -var;
return var;
}
int main() {
// call function with int type parameter
cout << "Absolute value of -5 = " << absolute(-5) << endl;
// call function with float type parameter
cout << "Absolute value of 5.5 = " << absolute(5.5f) << endl;
return 0;
}
출력
Absolute value of -5 = 5 Absolute value of 5.5 = 5.5<그림>
이 프로그램에서는 absolute()
를 오버로드합니다. 기능. 함수 호출 시 전달된 매개변수의 유형에 따라 해당 함수가 호출됩니다.
#include <iostream>
using namespace std;
// function with 2 parameters
void display(int var1, double var2) {
cout << "Integer number: " << var1;
cout << " and double number: " << var2 << endl;
}
// function with double type single parameter
void display(double var) {
cout << "Double number: " << var << endl;
}
// function with int type single parameter
void display(int var) {
cout << "Integer number: " << var << endl;
}
int main() {
int a = 5;
double b = 5.5;
// call function with int type parameter
display(a);
// call function with double type parameter
display(b);
// call function with 2 parameters
display(a, b);
return 0;
}
출력
Integer number: 5 Float number: 5.5 Integer number: 5 and double number: 5.5
여기서 display()
함수는 다른 인수로 세 번 호출됩니다. 전달된 인수의 수와 유형에 따라 해당 display()
함수가 호출됩니다.
이 모든 함수의 반환 유형은 동일하지만 함수 오버로딩의 경우에는 그럴 필요가 없습니다.
<시간>
참고: C++에서는 많은 표준 라이브러리 함수가 오버로드됩니다. 예를 들어, sqrt()
함수는 double
을 사용할 수 있습니다. , float
, int,
등을 매개변수로 사용합니다. sqrt()
함수가 C++에서 오버로드되었습니다.
C 언어
C 사용자 정의 함수 이 튜토리얼에서는 예제를 통해 C 프로그래밍에서 사용자 정의 함수를 만드는 방법을 배웁니다. 함수는 특정 작업을 수행하는 코드 블록입니다. C를 사용하면 필요에 따라 기능을 정의할 수 있습니다. 이러한 함수를 사용자 정의 함수라고 합니다. 예: 원을 만들고 반지름과 색상에 따라 색상을 지정해야 한다고 가정합니다. 이 문제를 해결하기 위해 두 가지 함수를 만들 수 있습니다. createCircle() 기능 color() 기능 예:사용자 정의 함수 다음은 두 개의 정수를 더하는 예입니다. 이 작업을 수
C++에서 다형성이란 무엇입니까? C++에서 다형성은 멤버 함수를 호출/호출하는 객체에 따라 다르게 동작하도록 합니다. 다형성(Polymorphism)은 여러 형태를 갖는다는 의미의 그리스어입니다. 상속을 통해 관련된 클래스 계층이 있을 때 발생합니다. 예를 들어 makeSound() 함수가 있다고 가정합니다. 고양이가 이 함수를 호출하면 야옹 소리가 납니다. 젖소가 동일한 기능을 호출하면 야옹 소리가 납니다. 우리는 하나의 기능을 가지고 있지만 상황에 따라 다르게 작동합니다. 함수에는 여러 가지 형태가 있습니다.