파생 된 개체에 기본 개체를 할당하는 방법에 대해 C++에 대한 질문이 있습니까? 또는 Base 객체에 대한 포인터를 Derived 객체에 대한 포인터에 할당하는 방법은 무엇입니까?파생 된 개체에 기본 개체를 할당하는 방법
아래 코드에서 두 줄이 잘못되었습니다. 어떻게 수정해야합니까?
#include <iostream>
using namespace std;
class A{
public:
int a;
};
class B:public A{
public:
int b;
};
int main(){
A a;
B b;
b = a; //what happend?
cout << b.b << endl;
B* b2;
b2 = &a; // what happened?
cout << b->b << endl;
}
또한 경우에 예외를 던지고, 참고 문헌에서 작동하지 않기 때문에 A가 B 형 *는 A를 가리킬 수 없습니다 때문에의를 B 지점 수 실패. 그러나 dynamic_cast에는 가상 메소드가 필요합니다 (예 : A에 가상 소멸자 추가). – UncleBens