- 함수의 오버로딩(function overloading)
- 매개 변수가 자료형과 갯수가 다를 시, 동일 함수명 사용 가능
- 동일 기능 함수, 매개변수 자료형에 따라 상관없이 사용하고자 이용
- C언어
- 함수 이름 호출
- 매개변수 자료형 다를 시 동일 이름 함수 정의 불가
- C++
- 함수 이름, 매개변수 정보까지 참조
- 매개변수 자료형 또는 갯수가 다를 시, 오버로딩 가능
- C언어
#include <stdio.h>
#include <iostream>
#include <iomanip>
using namespace std;
namespace test {
int plus(int a, int b) {
return a + b;
}
// 매개변수 자료형이 다른경우.
double plus(int a, double b) {
/*
* return이 int로 해놓고 왜 12가 출력되나 엄청 고민했다.
* int로 형변환이 일어날 경우, 반올림되지 않고 소수점을 전부 버린다.
*/
return a + b;
}
// 매개변수 갯수가 다른경우.
int plus(int a, int b, int c) {
return a + b + c;
}
}
void main() {
cout << test::plus(1, 2) << endl;
cout << test::plus(10, 2.795f) << endl;
cout << test::plus(10, 27, 10) << endl;
}
- 디폴트(Default) 매개변수
- 함수를 호출할 때, 매개변수를 넣지 않았을 경우 디폴트값으로 초기화
- 함수의 매개변수 갯수를 줄이는 기능
#include <stdio.h>
#include <iostream>
#include <iomanip>
using namespace std;
namespace test {
int defaultTest1(int a = 10, int b = 5) {
return a + b;
}
int defaultTest2(int a, int b = 100) {
// default 매개변수는 뒤에서부터 채워야함
return a + b;
}
}
void main() {
cout << test::defaultTest1() << endl;
cout << test::defaultTest2(70) << endl;
}
3. C++ 스타일 초기화
C | C++ |
int val = 20; | int val(20); // 선언 시에만 사용 |
val = 30; | val = 30; // val(30); 사용 불가 |
둘 다 동작함.
'C++ > 기초' 카테고리의 다른 글
[C++] 동적할당 (1) | 2023.12.18 |
---|---|
[C++] 래퍼런스(Reference) 변수, 포인터(Pointer) 변수 (0) | 2023.12.15 |
[C++] bool 자료형 (0) | 2023.12.14 |
[C++] namespace (0) | 2023.12.14 |
[C++] cin, cin.get, cout, fflush (0) | 2023.12.14 |