Base 클래스 변수를 통해 파생 클래스 멤버 변수에 액세스해야합니다.기본 클래스 정적 변수를 통해 파생 클래스 멤버에 액세스해야합니다
Class A{
};
Class B:public A {
int data;
};
는 지금이
A *pb = new B()
pb->data = 10;
같은 것을 할 필요가 있지만, 문제는 wihtout 그것은 내가 파생 멤버 클래스에 액세스 할 수 있습니다.
그래, 가상 기능을 사용하는 방법을 알고 있습니다.
감사합니다. 정말로 감사드립니다.
+1하지만 캐스트가 안전하지 않다고 지정해야합니다. –
그래, 사실 내 코드는 이런 상황이 아니야. 하지만 이런 식으로해야한다면 ... 궁금 해서요.하지만 어떻게 틀린 디자인을 만들었습니까? 그래서 파생 된 모든 클래스 멤버는 생성자를 통해서만 초기화/수정해야합니까? 또는 가상 함수를 통해 ??? – howtechstuffworks
@howtechstuffworks는 부모로부터 파생 된 클래스 멤버에 액세스하는 것이 잘못된 것을 의미합니다. 부모는 그 자체로 실행 가능한 객체이며 순수한 가상 클래스가 아니면 파생 된 객체없이 존재할 수 있어야합니다. 올바른 방법은 부모 클래스 수준에서 정의 된 가상 함수를 사용하는 것입니다. – littleadv