Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 关于迭代器列表在类型从一个指针对象类型转换到另一个指针对象类型后给出无效数据_C++_Pointers_Iterator_Type Conversion_Typecast Operator - Fatal编程技术网

C++ 关于迭代器列表在类型从一个指针对象类型转换到另一个指针对象类型后给出无效数据

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的类型转换

我试图从迭代器列表中获取数据,迭代器列表指向一个类型的指针对象列表。 这个数据被分配给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到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); }