C++ 접근지정자
[C++] 상속과 접근 지정자 (access specifiers)
1. 상속과 접근 지정자 (access specifiers) class Base { private: int a; public: int c; }; class Derived : public Base { }; int main() { Derived derv; derv.a = 10; // error derv.c = 10; // ok } 위 코드는 Base를 기반 클래스로 Derived클래스가 상속받았다. 따라서 Derived클래스에는 적혀있진 않지만 a와 c 멤버데이터가 있다. main함수에서 a와 c에 접근하려 하는데 c는 public이라 상관없지만 a는 private으로 외부에서 접근할 수 없으므로 에러가 난다. 그렇다면 다음 코드는 어떨까? class Base { private: int a; public: ..
[C++] 접근지정자
1. 접근지정자 (access specifiers) struct Book { int code; int price; }; int main() { Book b; b.price = -1000; } 위와 같은 코드가 있다고 해보자. Book이란 구조체는 책의 code번호와 가격 정보를 들고있다. 사용자는 main()함수에서 책을 만들고 책의 가격을 바꾸려고 하는데 사용자가 실수로 '-'를 넣었다고 해보자. 가격은 음수가 될 수 없는데 이러한 실수를 막으려면 어떻게 해야 할까? - 멤버 데이터를 외부에서 직접 접근하면 객체가 잘못된 상태를 가지게 될 수 있다. - 접근지정자를 통해 멤버 함수를 통해서만 멤버 데이터를 변경할 수 있게한다. => 멤버 함수는 인자의 유효성 여부를 조사 할 수 있다. struct Bo..