C++ Vector2D类操作

标签 c++ math vector coordinates

我有一个名为 Vec2D 的类来处理二维 vector 操作。

   Vec2D pos1 = Vec2D( 100, 100 );
   Vec2D pos2 = Vec2D( 100, 100 );

我重载了运算符,因此算术可以更简单。因此,我可以执行以下操作:

Vec2D difference = pos1-pos2;
float distance = difference .magnitude(); 

我想知道我的类(class)是否可以做这样的算术?

float distance = (pos1-pos2).magnitude();

我尝试编译,但它给了我一些奇怪的错误,例如“Class Vec2D has no iterators...” 我认为可以解释这一点的唯一原因是结果中不存在类?

最佳答案

这里的问题可能是您实现 - 运算符的方式。原型(prototype)应该是:

Vec2D operator- (const Vec2D &rhs) const

或课外

Vec2D operator- ( const Vec2D& v1, const Vec2D& v2 )

您的运营商是如何声明的?特别是 - 操作返回类型是什么?

关于C++ Vector2D类操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14133586/

相关文章:

c++ - 如何将 C++ 代码公共(public) header 设为内部?

c++ - 在 C++ 中重载运算符 =

从数组转换为 vector 时的java泛型问题

sql - 关系数据库是否适合向量计算?

c++ - 拥有一个整数矩阵 MxN 如何将它们分组为具有 boost 几何形状的多边形?

c++ - 如何在 C/C++ 中创建文件数组?

C++构造函数问题

c - 计算 PWM 的频率

c++ - 在笛卡尔平面上给定N条线。如何有效地找到最底线的交点?

math - 为什么我们需要在做 2 的补码时加 1