小编Jan*_*ann的帖子

在不相关的全等课程之间进行投射

假设我有两个来自两个不同库的相同成员的类:

namespace A {
  struct Point3D {
    float x,y,z;
  };
}

namespace B {
  struct Point3D {
    float x,y,z;
  };
}
Run Code Online (Sandbox Code Playgroud)

当我尝试交叉投射时,它有效:

A::Point3D pa = {3,4,5};
B::Point3D* pb = (B::Point3D*)&pa;
cout << pb->x << " " << pb->y << " " << pb->z << endl;
Run Code Online (Sandbox Code Playgroud)

在哪种情况下这保证有效?总是?请注意,编辑外部库以添加对齐编译指示或类似的东西是非常不受欢迎的.我在Ubuntu 8.10上使用g ++ 4.3.2.

c++ casting

6
推荐指数
1
解决办法
1086
查看次数

标签 统计

c++ ×1

casting ×1