双向操作员超载
bi-directional operator overloading
代码
vector.h
friend Vector& operator* (const double &factor, const Vector &v);
friend Vector& operator* (const Vector &v,const double &factor);
vector.cpp
Vector& operator *(const double &factor, Vector &v){
v.x=v.x*factor;
v.y=v.y*factor;
return v;
}
Vector& operator* (const Vector &v,const double &factor){
return factor * v;
}
,对于某些读取,我会在我的vector.cpp文件上得到错误, Vector& operator* (const Vector &v,const double &factor)
-函数
未定义的引用"操作员*
我在做什么错...?
如我的评论中所述,发生错误,因为您的函数声明和定义签名不同。
无论如何,具有免费的常见运算符函数,人们希望获得一个新的Vector
实例,而不是获得对传递的引用。
声明/定义操作员函数如下:
friend Vector operator* (const Vector &v,double factor);
friend Vector operator* (double factor, const Vector &v);
Vector operator *(double factor, const Vector &v) {
Vector result = v;
result.x=result.x*factor;
result.y=result.y*factor;
return result;
}
Vector operator* (const Vector &v,double factor) {
return factor * v;
}
相关文章:
- 二进制超载操作员=
- GLM超载操作员用于地图不起作用
- 使用超载操作员可以实现另一个操作员超载
- 超载操作员|用于固定尺寸的数组
- 超载<<操作员意外行为?
- 实施超载操作员的麻烦
- 如何超载操作员 如果调用对象不是类对象
- 如何使用向量将类对象存储在超载操作员中
- 在课堂上超载I/O操作员的奇怪行为
- 超载操作员 *
- 超载操作员&lt;&lt; - 必须是二进制操作员
- 超载操作员 仅适用于类的特定情况
- AT()和超载操作员[] C 之间的差异
- 为什么我不能超载 *操作员
- 多个操作数,用于超载 *操作员
- MINGW中的全局超载操作员新/删除
- 超载操作员问题C++
- C 超载操作员问题
- 当我使用STL集时,我应该超载==操作员吗?
- C 我应该超载操作员