Default Access

class/struct 시작 접근

접근 지정자를 쓰기 전의 멤버는 class와 struct에서 서로 다른 기본 공개 범위를 갖는다.

class

명시 전 멤버는 private

class MyClass {
  int privateVar;
public:
  int publicVar;
};

객체 사용자는 public 이후의 publicVar만 직접 접근할 수 있다.

struct

명시 전 멤버는 public

struct MyStruct {
  int publicVar;
private:
  int privateVar;
};

private 이후로 내려간 privateVar만 외부 직접 접근이 막힌다.

상태 보호

캡슐화가 목적이면 class와 private 멤버 변수를 기본으로 둔다.

데이터 묶음

단순 값 묶음은 struct의 public 기본값이 더 자연스러울 수 있다.

명시 우선

중요한 경계는 public, private, protected를 직접 적어 의도를 남긴다.