함수 중복
- 동일한 이름의 함수가 공존
- 조건
- 함수의 이름 동일
- 매개변수 타입 다르거나 개수 다름
- 리턴 타입은 무관함
int sum(int a,int b,int c)
double sum(double a, double b)
int sum(int a, int b)
int sum(int a,int b)
double sum(int a, int b)
생성자 함수 중복
class string{
public:
string();
string(string& str);
string(char* s);
};
소멸자 함수 중복 불가
디폴트 매개 변수
- '매개변수 = 디폴트값' 형태
void star(int a=5);
- 조건 : 디폴트 매개 변수는 끝 쪽에 몰려 선언되어야 함
함수 중복 간소화
- 디폴트 매개 변수 장점
- 중복 함수들과 디폴트 매개 변수를 가진 함수 함께 사용 불가
함수 중복의 모호성
- 형 변환으로 인한 모호성
- 참조 매개 변수로 인한 모호성
- 디폴트 매개 변수로 인한 모호성
static 멤버와 non-static 멤버
- static 멤버
- 프로그램 시작할 때 생성
- 클래스당 하나만 생성
- non-static 멤버
static 멤버 사용: 객체의 멤버로 접근
static 멤버 사용: 클래스명과 범위 지정 연산자(::)로 접근
static 활용
- 전역 변수나 전역 함수를 클래스에 캡슐화
- 객체 사이에 공유 변수를 만들고자 할 때
static 멤버 함수는 static 멤버만 접근 가능
non-static 멤버 함수는 static에 접근 가능
static 멤버 함수는 this 사용 불가