my_acnt라는 객체를 생성한 다음 객체를 사용해 balance 멤버에 접근합니다(#4). 하지만 이 코드를 컴파일하면 컴파일 오류가 납니다. 오류 메시지를 보면 "Account::balance : cannot access private member declared in class 'Account'"라고 되어 있습니다. private으로 숨겨진 멤버에 명시적으로 접근했기 때문에 컴파일 오류가 난 것입니다. 그렇다면 멤버를 숨김으로써 얻을 수 있는 장점은 무엇일까요? 코드 6-21에서 Account 클래스의 set_balance() 메서드를 다시 한 번 볼까요?
void set_balance(int money) {
if (money < 0) {
return;
}
balance = money;
}