[프로그래밍 언어]/C,C++

열혈 C++ 프로그래밍 ch 01-2 함수 오버로딩

우당탕탕 개발 일지 2024. 3. 28. 13:49

안녕하세요. 우당탕탕 개발일지입니다.  열혈 C++책으로 C++ 문법을 다시 정리하려고 합니다. 간단하게  내용 요약하고 문제푼 코드를 올립니다. 한번 올라가는 분량이 적습니다. 가벼운 마음으로 봐주세요.  아자아자 소프트!

 

 ♠내용요약 ♠ p23~25

 

1) C언어는 동일한 이름의 함수가 정의되는 것을 허용하지 않는다 (컴파일 에러가 난다.)

=> '함수 이름'만으로 함수를 찾기 때문이다. 

 

하지만 C++은 매개변수의 선언형태가 다르면은 동일한 이름의 함수를 정의해도 된다. 

=>'함수 이름'과 '매개변수의 선언' 두개로 함수를 찾는다.

 

 

매개 변수의 선언 형태가 다르다는 것은 '매개변수의 자료형 또는 개수가 다르다'는 것이다.

 


 

문제 01-2

int main(void)
{
	int num1 = 20, num2 = 30;
	swap(&num1, &num2);
	std::cout << num1 << ' ' << num2 << std::endl;

	char ch1 = 'A', ch2 = 'Z';
	swap(&ch1, &ch2);
	std::cout < <ch1<< ' ' << ch2 << std::endl;

	double dbl1= - 1.111,  dbl2= - 5.555;
	swap(&dbl1, &dbl2);
	std::cout << dbl1 << ' '<<dbl2<<std::endl;
	return 0;
}

 

정답 01-2

#include<iostream>


void swap(int &num1, int & num2)
{
	int temp = num1;
	num1 = num2;
	num2 = temp;
}


void swap(char &ch1 , char &ch2 )
{
	char temp = ch1;
	ch1 = ch2;
	ch2=temp;
}

void swap(double &dbl1, double &dbl2)
{
	double temp = dbl1;
	dbl1 = dbl2;
	dbl2 = temp;

}


int main(void) 

{
	int num1 = 20, num2= 30;
	swap( num1, num2);
	std::cout << num1 << ' ' << num2 << std::endl;

	char ch1 = 'A', ch2 = 'Z';
	swap(ch1, ch2);
	std::cout << ch1 << ' ' << ch2 << std::endl;

	double dbl1 = -1.111, dbl2 = -5.555;
	swap(dbl1,dbl2);
	std::cout << dbl1 << ' ' << dbl2 << std::endl;

	
}
728x90