ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๐Ÿงฐ ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋”ฉ (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:

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2025/12   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
๊ธ€ ๋ณด๊ด€ํ•จ