<객체> 6. 함수 중복과 static 멤버

정지민·2023년 10월 13일
0

객체 프로그래밍

목록 보기
6/11

함수 중복

  • 동일한 이름의 함수가 공존
  • 조건
    • 함수의 이름 동일
    • 매개변수 타입 다르거나 개수 다름
    • 리턴 타입은 무관함
//함수 중복 성공 사례
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 사용 불가

0개의 댓글