父类实例与子类实例
大家好!
我有两个类,B:Public A;
现在有一组A的实例vecA,怎么通过它得到相应的一组B的实例vecB?
[解决办法]
得不到吧。
子类扩展了父类,子类知道父类的细节,但父类不知道子类扩展了哪些东西。
[解决办法]
不可能.B中新的数据成员怎么知道?
当然如果B有以A为实参的构造函数,可以这样:
vector <B> vecb;
for (vector <A> ::const_iterator iter=veca.begin();iter!=veca.end();++iter)
vecb.push_back(B(*iter));
[解决办法]
得不到
如果是一样的话可以通过虚函数来实现
[解决办法]
B是A的子类,那么就是说,B就是A的一种,可以由B得到A,但是反过来不成立,所以你想由A得到B是不行的。
如果是指向A类型指针想要转换为指向B类型的指针的话,用dynamic_cast向下转型,但是注意这个不是一定成功的。
[解决办法]
自己实现一个以A类型为参数的构造函数就可以
[解决办法]
。。。。