나는 알고있다 why 개인 가상 기능을 사용하고 싶지만, 어떻게 구현할 수 있습니까? 예를 들어파생 클래스 내에서 개인 가상 함수를 구현하는 방법은 무엇입니까?
:
class Base{
[...]
private:
virtual void func() = 0;
[...]
};
class Derived1: public Base{
void func()
{ //short implementation is ok here
}
};
class Derived2: public Base{
void func(); //long implementation elsewhere (in cpp file)
};
[...]
void Derived2::func()
{ //long implementation
}
첫 번째 버전은 확인하지만 항상 가능하다. 두 번째 버전이 단순히 숨기는 이름이 아닙니까? Dereived2
의 클래스 선언에서 수행 할 수없는 경우 을 Derived2
으로 어떻게 정의합니까?
감사
는 왜 개인으로
너의 진정,
SeargX이 있습니까? 보호받는 것이 더 합리적 일 것입니다. 정교하게 만들어 주시겠습니까? – dbemerlin
'Derived2 :: func()'은'Base :: func()'에 대한 올바른 재정의 (override)입니다. 정확히 작동하지 않는 것은 무엇입니까? –
"항상 가능한 것은 아니지만"에 대해 자세히 설명해 주시겠습니까? – philsquared