C++
9-1 함수중첩
리버윤
2023. 11. 15. 11:25
728x90
- 함수 중첩(funcion overloading) : 하나의 함수명을 여러 개의 유사 목적으로 사용할 수 있다.
* C의 경우 함수 중첩 불가능
- 컴파일러가 매개변수의 입력 자료형에 따라서 자동적으로 해당 함수를 연결해 준다.
- 함수중첩을 하는 2가지 이유
#include <iostream>
//매개변수의 형이 다른 경우
int add(int i, int j)
{
return (i + j);
}
float add(float i, float j)
{
return (i + j);
}
double add(double i, double j)
{
return (i + j);
}
//매개변수의 개수가 다른경우
int add(int i, int j, int k)
{
return (i + j + k);
}
int add(int i, int j, int k, int l)
{
return (i + j + k + l);
}
int main()
{
std::cout << add(1, 2) << std::endl;
std::cout << add(1.3f, 2.6f) << std::endl;
std::cout << add(6.5, 3.8) << std::endl;
std::cout << add(1, 2, 3) << std::endl;
std::cout << add(1, 2, 3, 4) << std::endl;
return 0;
}
- 생성자 중첩 : 객체에 초기값을 다양하게 주는 선택 기회를 제공하는 것이다.
- 생성자 함수중첩 예시
#include <iostream>
class Dog {
private:
int age;
public:
Dog() { age = 1; } // 매개변수가 없는 생성자, 자동 inline
// Dog(int a) { age = a; } // 매개변수가 하나인 생성자
~Dog();
int getAge();
void setAge(int a);
};
Dog::~Dog()
{
std::cout << "소멸";
}
int Dog::getAge()
{
return age;
}
void Dog::setAge(int a)
{
age = a;
}
int main()
{
Dog happy(2), meri;
std::cout << happy.getAge() << "," << meri.getAge();
return 0;
}
728x90