Class

manmarru·2024년 2월 16일

c++

목록 보기
9/24

클래스 선언

class Object
{

};

int main()
{
	Object cObj;
	return 0
}

맴버, 접근 권한

class Object
{
	private: //내부에서만 접근 가능하기 때문에 은닉화를 유지해준다.
		int age;
	protected: //private와 비슷하지만 상속받은 객체들의 내부에서도 접근 가능하다.
    	const char* firstName
	public: //자유롭게 접근 가능하기 때문에 은닉해야 하는 값이나 함수는 넣지 말자.
		int get_age()
        { return age; };
        int set_age(int _Iinput)
        { age = _Iinput}
};

int main()
{
	Object cObj;
    //cObj.age = 1; age는 외부에서 접근이 불가능하기 때문에 컴파일이 안된다.
    cObj.set_age(20)
    cout << get_age() << endl;
	return 0
}
  • 은닉해야 하는 값들의 경우 접근 권한을 private이나 protected로 해두고 public 에서 get, set 함수를 만들어서 접근하는게 좋다.
  • 사실 get, set도 가급적 안 쓰는게 은닉화에 좋고 클래스 내부에서 처리한 결과를 반환받는게 더 좋다.

오버로딩, 오버라이딩

  • 함수에 virtual 선언을 했고, 함수 이름이 같고, 매개변수가 같아야 오버라이딩이 된다.
  • 오버라이딩을 해도 호출하는건 본인 함수를 통해서 호출하기 때문에
    부모 클래스 포인터에 자식 포인터를 할당해도 부모 함수쪽의 접근 권한을 따라간다.

상속 방지

  • final 선언을 하면 해당 클래스는 상속 불가능해진다.
class Obj final
{
};

0개의 댓글