this
을 사용하는 데 어려움이 있습니다. 파생 클래스를 조각화 한 것 같습니다. 이 예제는 내 문제를 설명하는 데 도움이 될 것입니다.이 조각을 사용하여 내 개체
class A
{
A() {
OtherClass(*this);
}
virtual doSomething() = 0;
}
class B : public A
{
B() : A() {}
doSomething() override {
std::cout << "Hi!" << std::endl;
}
}
class OtherClass()
{
OtherClass(A &a) {
a.doSomething();
}
}
몇 가지 조사 후에는 사용 *this
슬라이스 클래스 B
처럼 보인다. 그리고 OtherClass
은 A
에서 순수 가상 메서드를 호출합니다. 내가 틀렸다? B
클래스 초기화 후 OtherClass(*this)
을 작성해야합니까?
'수퍼 클래스보다 하위 클래스가 생성됩니다'. 그게 맞습니까? 기본 (수퍼) 클래스는 파생 (하위) 클래스보다 먼저 생성됩니다. –
어, 수정했습니다 ... –