:: ADVANCE ::
[C/C++] C++ 기능 1 본문
반응형
추가된 함수 기능
1. 오버로딩 (Overloading)
이름은 같고 매개변수의 개수나 자료형을 다르게 지정하여 하나의 이름으로 여러가지 기능을 갖는 함수를 만들수 있다.
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
26
27
28
29
30
31 |
#include <iostream>
using namespace std;
int add(int a, int b)
{
int sum;
sum = a+b;
return sum;
}
int add(int a, int b, int c)
{
int sum;
sum = a+b+c;
return sum;
}
double add(double a, double b)
{
double sum;
sum = a+b;
return sum;
}
int main()
{
cout<<add(10, 20)<<endl;
cout<<add(10, 20, 25)<<endl;
cout<<add(10.4, 20.1)<<endl;
return 0;
} |
2. 매개변수의 디폴트값(Default Value)
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
26
27 |
#include <iostream>
using namespace std;
int add(int a=0, int b=0)
{
return a+b;
}
int sub(int a, int b=0)
{
return a-b;
}
int func(int a=0, int b) //앞쪽의 매개변수가 초기값을 가지면, 뒤쪽에도 부여해야함
{
}
int main()
{
cout<<add(10, 20)<<endl;
cout<<add(10)<<endl;
cout<<add()<<endl;
// cout<<add(, 20)<<endl; //앞쪽의 매개변수를 생략해서 호출은 불가
return 0;
}
|
3. 인라인 함수(inline)
실행속도를 빠르게할 목적으로 만드는 함수이며, 매크로처럼 미리 번역된다. 복잡한 제어문은 사용할 수 없으며, 인라인 함수도 overloading이 가능하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
#include <iostream>
using namespace std;
inline int add(int a, int b)
{
return a+b;
}
inline int add(int a, int b, int c)
{
return a+b+c;
}
int main()
{
cout<<add(10, 20)<<endl;
cout<<add(10, 20, 30)<<endl;
return 0;
} |
반응형
'language > C | C++' 카테고리의 다른 글
[C++] Class (0) | 2015.07.13 |
---|---|
[C/C++] C++ 기능 3 (0) | 2014.09.16 |
[C/C++] C++ 기능 2 (0) | 2014.09.16 |
[C/C++] C와 C++ (0) | 2014.09.16 |
[C++] Efficient C++ (1) | 2014.09.15 |
Comments