ํฐ์คํ ๋ฆฌ ๋ทฐ
๐งฐ ํจ์ ์ค๋ฒ๋ก๋ฉ (function overloading)
๋งค๊ฐ๋ณ์ (๋งค๊ฐ๋ณ์์ ์๋ฃํ, ๊ฐ์, ์์) ๊ฐ ๋ค๋ฅด๋ฉด ์ด๋ฆ์ด ๊ฐ์ ํจ์ 2๊ฐ๋ฅผ ์ ์ํ ์ ์๋ค. ์ด๋ฅผ ํจ์ ์ค๋ฒ๋ก๋ฉ์ด๋ผ ํ๋ค.
int max(int a,int b) //max(int,int)
{
}
double max(double a,double b) //max(double,double)
{
}
// ๋ฐ๋ผ์ ๋ ํจ์๋ ํจ์ ์๊ทธ๋์ฒ๊ฐ ๋ค๋ฅด๋ฏ๋ก ๊ฐ์ ์ด๋ฆ์ด๋ผ๋ ํจ๊ป ์ ์ ๊ฐ๋ฅ
๐งฐ ํจ์ ์๊ทธ๋์ณ (function signature)
ํ๋ก๊ทธ๋จ์ด ๊ฐ์ ์ด๋ฆ์ ํจ์๋ฅผ ํ์ฉํ ๋, ํจ์๋ค์ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ธฐ์ค์ ํจ์ ์๊ทธ๋์ณ (function signature) ๋ผ๊ณ ํ๋ค. ํจ์ ์๊ทธ๋์ฒ๋ ๋งค๊ฐ๋ณ์๋ค์ ์๋ฃํ๊ณผ ์กฐํฉ์ด๋ค. ์ด๋ฆ์ด ๊ฐ์ ํจ์๋ผ๋ ํจ์ ์๊ทธ๋์ณ๊ฐ ๋ค๋ฅด๋ฉด ํธ์ถ ์์ ์ ์ปดํ์ผ๋ฌ๊ฐ ์์ ์ด ์ด๋ค ํจ์๋ฅผ ํธ์ถํด์ผ ํ๋์ง ๊ตฌ๋ถํ ์ ์๋ค.
๊ทธ๋ฌ๋, ๋ฆฌํด๊ฐ์ ์ด๋ค ์๋ฃํ์ผ๋ก ํ์ฉํ ์ง ํธ์ถ์์ ์ ์ ์ ์์ผ๋ฏ๋ก ๋ฆฌํด ์๋ฃํ์ ํจ์ ์๊ทธ๋์ฒ์ ํฌํจ๋์ง ์๋๋ค.
int get()
{
}
double get()
{
}
// ์ฒซ๋ฒ์งธ ํจ์๋ get()์ด๋ ์๊ทธ๋์ฒ๋ฅผ ๊ฐ๊ณ , ๋๋ฒ์งธ ํจ์๋ํ get()์ด๋ผ๋ ์๊ทธ๋์ฒ๋ฅผ ๊ฐ์ง๋ค.
// ๋ฐ๋ผ์ ๋ ํจ์๋ฅผ ํจ๊ป ์ ์ํ๋ฉด ์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
๐งจ ํจ์ ์ค๋ฒ๋ก๋ฉ ์์ 1)
#include <iostream>
using namespace std;
int max(int n1, int n2);
int max(int n1, int n2, int n3);
int max(int n1, int n2, int n3, int n4);
int main()
{
cout << "max(5,7): " << max(5, 7) << endl;
cout << "max(5,7,8): " << max(5, 7, 8) << endl;
cout << "max(1,-2,79,4): " << max(1, -2, 79, 4) << endl;
//์ธ๊ฐ์ signiture์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ตฌ๋ถ ๊ฐ๋ฅ
return 0;
}
int max(int n1, int n2)
{
int larger;
if (n1 >= n2)
larger = n1;
else
larger = n2;
return larger;
}
int max(int n1, int n2, int n3)
{
int larger;
larger = max(max(n1, n2), n3); // ๋๊ฐ์ max ํจ์๋ ๋ค๋ฅด๋ค
return larger;
}
int max(int n1, int n2, int n3, int n4)
{
int larger;
larger = max(max(n1, n2, n3), n4);
return larger;
}
RESULT:

'์ธ์ด > C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [C++] ๋ฐฐ์ด ์ฝ๋ ๊ณผ์ ๋ฆฌ๋ทฐ (0) | 2023.03.29 |
|---|---|
| [C++] ๋ฉ๋ชจ๋ฆฌ ์์ญ ๊ทธ๋ ค๋ณด๊ธฐ _ 1์ฐจ ํด์ฆ (1) | 2023.03.20 |
| [C++] ํจ์ ์๋ฃ๋ฆฌํด (0) | 2023.03.20 |
| [C++] ํจ์ ์๋ฃ์ ๋ฌ (0) | 2023.03.20 |
| [C++] ์ฃผ์ ์ ๋ ฅ๋ฐ๊ธฐ _ cin.getline() ํ์ฉ (0) | 2023.03.16 |