C++ Programming

[ C++ ] 레퍼런스 Reference 캡슐화 Encapsulation 정보은닉 Private

psy_er 2021. 11. 8. 01:03
728x90

[ C++ ] 레퍼런스 Reference 캡슐화  Encapsulation 정보은닉 Private

 

레퍼런스 Reference

레퍼런스를 잘 이용해야 한다..

 

레퍼런스는 객체를 줄 때 지역변수와 차이가 없어 보인다..

레퍼런스 객체의 상호작용을 중시하자.

클래스 밖에 선언된 상수는. h에서 정의한다.

inline 함수는. h에서 정의한다

상수 정의 앞에 const를 추가해,. h에 저장한다 상수를 선언만 가능하고 값 할당은 불가능

레퍼런스를 이용해 객체를 받고 참조한다.

멤버 함수에 있는 멤버 변수는 그 객체에 적용이 된다..

멤버 함수는 을.

멤버 변수 직접 접근 X

 

 

생성자, 초기화 함수 만들 때 오른쪽 부분이 아닌 왼쪽 부분의 인수에 디폴트 값을 지정하자

매개변수는 오른쪽부터 참조된다.

 

void Init(int money, int numOfApple);

void Init(int money);

 

객체 = 객체 대입 복사 가능. 매개변수로 전달 복사 가능.

함수의 매개변수 타입을 레퍼런스로 지정해 객체를 전달하는 것이 효율적이다.

> 객체, 소멸 개수가 감소

 

 

캡슐화  Encapsulation 정보은닉 Private

 

캡슐화는 데이터와 그와 관련된 연산 함수들을 하나의 객체로 묶는 것이다.

정보 은닉(private)이 포함된 개념이다.

 

객체 외부에 인터페이스만 드러내고 객체 내부 구현은 숨김.

멤버 변수의 조작은 가능한, 공개된 멤버 함수를 통해 접근해야 한다..

 

변수의 유효 범위: 정의된 변수가 프로그램 내에서 참조 가능한 범위를 가리킨다..

접근 지정자에 의해 기본 유효 범위가 바뀔 수 있다.

 

대부분의 멤버 변수는 private, 멤버 함수는 public에 놓는다. 상황에 따라 바뀔 수 있다.

 

 

Access 함수

 

getter(실 인수의 return)

setter(실 인수의)

bool Point::SetX(int xPos){
    if(xPos < 0 || xPos > 100){
        cout << “오류: 범위가 벗어난 값” << xPos <<endl;
        return false;
}

    x = xPos; // 멤버변수에 저장
    return true;
}

 

const 멤버 함수 : 멤버 함수 헤더 마지막에 const 키워드를 사용한다.

함수 정의 둘 다 const 멤버로 설정한다.

 

멤버 함수 내에서 어떠한 멤버 변수의 값도 변경되지 못하도록 설정한다.

 

-멤버 변수 변경 시 컴파일 에러

-보통 getter에서 사용

-const 멤버 함수에서 다른 멤버 함수를 호출하려면 다른 멤버 함수도 const 멤버 함수 필수

-const 멤버 함수에서 레퍼런스 매개변수를 받으면 매개변수의 값이 바뀔 수 있기 때문에, 매개 변수 레퍼런스도 const 레퍼런스만 받을 수 있음.

 

 

728x90