问题其实很简单,有一个父类A,子类B:public A
在主函数中: A testa;
B testb=B(2);
testa=testb;
B testbb;
testbb=(B)testa;结果在编译的时候testbb=(B)testa;语句报错,说不能从A转到B,这是怎么回事情?
在主函数中: A testa;
B testb=B(2);
testa=testb;
B testbb;
testbb=(B)testa;结果在编译的时候testbb=(B)testa;语句报错,说不能从A转到B,这是怎么回事情?
class B : public A
{
... public:
B& operator = (const A& a) { /* ,,, */};
...
};
B *testb= new B(2);
testa=(A *)testb;
B *testbb;
testbb=(B)testa;
这样应该可以。
呵呵 我只是打个比方吧,这里面还有个构造了一个匿名对象调用copy构造函数等一大堆的过程。谢谢啦