我有两个在给定框架中定义点和 vector 的结构。

struct point3D
{
  float x;
  float y;
  float z;
};
struct vector3D
{
  float x;
  float y;
  float z;
};

之所以将它们定义为两个不同的结构,是因为还有其他函数将点(point3D)与 vector (vector3D)区别对待,因为它们具有相同类型的成员变量

我想知道是否有一种方法可以将其中一个转换为另一个说法:
point3D variable1;
vector3D variable2;
variable2=(vector3D)variable1;

最佳答案

你可以这样做

struct vector3D
{
  float x;
  float y;
  float z;
};

struct point3D
{
  float x;
  float y;
  float z;
  explicit operator vector3D() {
    return {x, y, z};
  }
};

关于c++ - 类型转换自定义结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51206022/

10-11 22:45
查看更多