방법이 있습니까, 개인 함수를 통해 인터페이스를 구현하는 파생 클래스를 강제로 있습니다. 내가 원하는 것은 다음과 같다.강제로 파생 클래스를 개인 메서드를 구현하려면
class base{
private:
virtual void do_something() = 0; // This can be private/public/protected
};
파생 된 클래스 공개하지 않은 do_something()
의 구현을 제공해야한다. 당신이 짐작할 수 있듯이, 여기 내 목적은 사용자가 함수의 구현을 제공하도록하지만 기본 클래스가 호출 할 것이고 class derived : public base{...}
의 객체는 do_something()
을 호출 할 수 없다는 것을 확인하는 것이다. 개인적인?
편집 : 그냥 추가하고 싶다면 class derived : base
은 (는) 사용자가 아니고 (내가) 작성한 것이 아닙니다. 사용 사례는 do_something()이 호출 될 때 기본 클래스의 함수가 제어되는지 확인하는 것입니다.
실제 사용 사례는 무엇입니까? –
@ πάντεῥεῖ 템플릿 메서드 패턴? – juanchopanza
'derived '가 내부적으로'do_something()'을 호출하지 못하게한다는 것을 의미합니까? – juanchopanza