c++로 프로그래밍 하는데요.
상위클래스에서 하위클래스에서 상속받아서 사용할때요.
상위클래스에서 함수를 구현할때 순수 가상 함수 였나? 그걸로 다 선언만 하고 쓰나요?
아니면 섞어서 순수가상함수랑 아래 하위 클래스에서 확실히 겹치는 부분은 상위클래스에서 구현해서 상속받아서 쓰게 하나요? (순수가상 + 일반함수)
상위클래스에서 하위클래스에서 상속받아서 사용할때요.
상위클래스에서 함수를 구현할때 순수 가상 함수 였나? 그걸로 다 선언만 하고 쓰나요?
아니면 섞어서 순수가상함수랑 아래 하위 클래스에서 확실히 겹치는 부분은 상위클래스에서 구현해서 상속받아서 쓰게 하나요? (순수가상 + 일반함수)
응 부모클래스에서 virtual 로 선언된 멤버 함수는 자식클래스에서 그걸 구현해서 쓰게 하려는 목적이 있는거야. 그런데 그렇지 않은 멤버 함수도 오버라이딩 해서 쓸 수 있어. 이건 목적에 따라서 달라. 클래스의 모든 멤버 함수가 virtual 일수도 있고, 일부만 virtual 일수도 있는데, 역시 목적에 따라 달라. 모든 멤버 함수가 virtual 이 되면 C# 이나 Java 에서 Interface 라고 부르는 것과 거의 동일한 역할을 하게 돼. 그리고 순수가상함수가 뭘 말하는지 모르겠어.
가상함수는 자식에서 구현을 안하면 부모클래스에서 구현한 것 그대로 사용하지만 순수가상함수는 자식 클래스에서 구현을 강제해요. 그리고 순수가상함수가 선언된 부모 클래스는 불완전한 클래스로써 그 클래스의 객체를 생성할수가 없어요.
ㄴ 응 고마워. 내가 C++ 한 지가 하도 오래되어서 책을 다시 봐야 할 것 같아