C++ 关于迭代器列表在类型从一个指针对象类型转换到另一个指针对象类型后给出无效数据
我试图从迭代器列表中获取数据,迭代器列表指向一个类型的指针对象列表。 这个数据被分配给B类型的指针对象 代码:C++ 关于迭代器列表在类型从一个指针对象类型转换到另一个指针对象类型后给出无效数据,c++,pointers,iterator,type-conversion,typecast-operator,C++,Pointers,Iterator,Type Conversion,Typecast Operator,我试图从迭代器列表中获取数据,迭代器列表指向一个类型的指针对象列表。 这个数据被分配给B类型的指针对象 代码: A*A=newa(); B*B=新的B(); std::lista_列表; for(std::list迭代器it=a_list.begin();it!=a_list.end();it++){ b=(b*)(*it);} 在这里,我得到了(*it)中的正确值,但是在上面的类型转换之后,大多数数据都是无效的。它给出了一些随机的垃圾值 我尝试了exploration\u cast的类型转换
A*A=newa();
B*B=新的B();
std::lista_列表;
for(std::list迭代器it=a_list.begin();it!=a_list.end();it++){
b=(b*)(*it);}
在这里,我得到了(*it)中的正确值,但是在上面的类型转换之后,大多数数据都是无效的。它给出了一些随机的垃圾值
我尝试了exploration\u cast的类型转换,但它仍然给了我相同的无效数据。它到底是如何给出“一些随机垃圾”的?为什么您会认为从A到B的转换是有效的?请提供问题代码的预期和实际输出
A* a=new A();
B* b=new B();
std::list<A*>a_list;
for(std::list<A*> iterator it = a_list.begin(); it != a_list.end(); it++) {
b= (B*)(*it); }