我是面向对象编程的新手,我想知道是否可以为一个类创建一个运算符,该运算符将使用这个类和另一个由我声明的参数。
我必须解决的问题是在给定点上的线性平移。所以我创建了类Point
,LinearTranslation
基本上我想做的是创建一个运算符
Point operator* (Point p, LinearTranslation l)
这需要Point p
,翻译 l 然后返回Point
。不过,我遇到了奇怪的错误:Point operator*(int)’ must have an argument of class or enumerated type
或者那个LinearTranslation has not been declared
.
它甚至可能吗?
好的,我只发布一点,因为这是一种任务,所以我有 Point.h 课程
很抱歉造成混乱,但我正在尝试一切,但它对我不起作用。
#include "LinearTranslation.h"
class Point {
public:
int N;
double* coordinates;
public:
Point(int, double*);
virtual ~Point();
double operator[](int a);
//friend Point operator*(LinearTranslation l);
friend Point translation(LinearTranslation l);
};
LinearTranslation.h
#include "Point.h"
class LinearTranslation {
private:
int N;
double* vector;
double** matrix;
public:
//friend class Point;
LTrans(int,double*,double**);
LTrans(int);
virtual ~LTrans();
void write_vector();
void write_matrix();
LinearTranslation operator+(const LinearTranslation&);
friend Point& translation(LTrans l, Point p);
//friend Point& operator* (Point p, LTrans l);
};