클래스 선언
class Object
{
};
int main()
{
Object cObj;
return 0
}
맴버, 접근 권한
class Object
{
private:
int age;
protected:
const char* firstName
public:
int get_age()
{ return age; };
int set_age(int _Iinput)
{ age = _Iinput}
};
int main()
{
Object cObj;
cObj.set_age(20)
cout << get_age() << endl;
return 0
}
- 은닉해야 하는 값들의 경우 접근 권한을 private이나 protected로 해두고 public 에서 get, set 함수를 만들어서 접근하는게 좋다.
- 사실 get, set도 가급적 안 쓰는게 은닉화에 좋고 클래스 내부에서 처리한 결과를 반환받는게 더 좋다.
오버로딩, 오버라이딩



- 함수에 virtual 선언을 했고, 함수 이름이 같고, 매개변수가 같아야 오버라이딩이 된다.
- 오버라이딩을 해도 호출하는건 본인 함수를 통해서 호출하기 때문에
부모 클래스 포인터에 자식 포인터를 할당해도 부모 함수쪽의 접근 권한을 따라간다.
상속 방지
- final 선언을 하면 해당 클래스는 상속 불가능해진다.
class Obj final
{
};