我有一个关于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;
}
也适用于引用,在以下情况下抛出一个异常B的失败。但是,dynamic_cast似乎需要虚拟方法(例如向A添加虚拟析构函数) – UncleBens 2010-01-30 00:44:54