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
'C++' 카테고리의 다른 글
10-1 상속 (0) | 2023.11.22 |
---|---|
9-2 디폴트 인자(매개변수) (0) | 2023.11.15 |
6-1 클래스 (0) | 2023.10.18 |
5-2 객체지향 프로그래밍 (0) | 2023.10.12 |
5-1 구조체 (2) | 2023.10.11 |