C++에서 같은 이름의 함수를 두 개 이상 정의(구현)하여 사용하는 것.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#include <iostream>
using namespace std;
void square(int);
void square(double);
int main(void) {
char ch = 'A';
short sh = 10;
float ft = 3.4f;
double db = 3.14;
square(ch); // square(int) 호출
square(sh); // square(int) 호출
square(ft); // square(double) 호출
square(db); // square(double) 호출
return 0;
}
void square(int a) {
cout << "int형으로 호출 : " << a*a << endl;
}
void square(double d) {
cout << "double형으로 호출 : " << a*a << endl;
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <iostream>
using namespace std;
void char_prn(char ch = '#', int cnt = 5); // 함수 prototype
//void char_prn(char = '#', int = 5);
int main(void) {
char_prn(); // char_prn('#', 5);
char_prn('@'); // char_prn('@', 5);
char_prn('@', 10);
char_prn(10); // char_prn((ASCII값이 10인 문자), 5);
char_prn( , 10); // 컴파일 에러
return 0;
}
void char_prn(char ch, int cnt) {
for(int i = 0; i < cnt; i++) {
cout << ch;
}
cout << endl;
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <iostream>
using namespace std;
void prn(char *);
void prn(char *, int = 10);
int main(void) {
char str[10] = "Star";
prn(str);
prn("Moon"); // void prn(char *)인지 void prn(char *, int)인지 모호
prn("Universe", 3);
return 0;
}
void prn(char *p) {
cout << p << endl;
}
void prn(char *p, int rc) {
for (int i = 0; i < rc; i++) {
cout << p << endl;
}
}
|
cs |
처 리 | 특 징 | 부 작 용 | |
inline 함수 | 컴파일러 (기계어 상태로 풀려 들어감) |
전달인자 type 존재 call, return 등 일반함수 수행의 형태의 결과를 낸다. |
X |
macro 함수 | 전처리기 (Text 상태로 풀려 들어감) |
전달인자의 type 존재X return 값의 type 존재X 풀려들어간 상태로 실행 |
전달인자에 ++, --를 사용했을 때 부작용 발생할 가능성이 있다. |
[TIL] 1 - 6. 객체지향 기본 문법 - 참조 (0) | 2022.02.09 |
---|---|
[TIL] 1 - 5. 객체지향 기본 문법 - const의 이해 (0) | 2022.02.08 |
[TIL] 1 - 3. 객체지향 기본 문법 - 네임스페이스 (0) | 2022.02.08 |
[TIL] 1 - 2. 객체지향 기본 문법 - C++에 추가된 데이터 타입 및 향상된 for문 (0) | 2022.02.07 |
[TIL] 1 - 1. 객체지향 기본 문법 - C++의 객체를 이용한 입출력 (0) | 2022.02.06 |
댓글 영역