i've decided to write some basic to my engine. i started with implementing CVector class
the header source:
class CVector2
{
friend CVector2 operator*(float scalar, CVector2 &vector);
friend CVector2 operator/(float scalar, CVector2 &vector);
friend CVector2 operator*=(float scalar, CVector2 &vector);
friend CVector2 operator/=(float scalar, CVector2 &vector);
public:
float x, y;
CVector2();
CVector2(float nx, float ny);
CVector2(const CVector2 &vector);
~CVector2();
void setVector(float nx, float ny);
CVector2 getVector();
void normalize();
void setLength(float newLength);
float getLength();
float dotProdcut(CVector2 vector);
CVector2 getPerpendicularVector(int index);
CVector2 getReflectedVector(CVector2 &normal);
static float dotProduct(CVector2 vector1, CVector2 vector2);
static float angleBeetwenVectors(CVector2 vector1, CVector2 vector2);
float operator!();
float operator%(CVector2 &vector);
CVector2 operator=(CVector2 vector);
CVector2 operator+(CVector2 vector);
CVector2 operator-(CVector2 vector);
CVector2 operator*(float scalar);
CVector2 operator/(float scalar);
CVector2 operator+=(CVector2 vector);
CVector2 operator-=(CVector2 vector);
CVector2 operator*=(float scalar);
CVector2 operator/=(float scalar);
};
CVector2 operator*(float scalar, CVector2 &vector);
CVector2 operator/(float scalar, CVector2 &vector);
CVector2 operator*=(float scalar, CVector2 &vector);
CVector2 operator/=(float scalar, CVector2 &vector);
part of implementation:
CVector2::CVector2()
{
x = 0.0f;
y = 0.0f;
}
CVector2::CVector2(float nx, float ny)
{
x = nx;
y = ny;
}
CVector2::CVector2(const CVector2 &vector)
{
x = vector.x;
y = vector.y;
}
CVector2::~CVector2()
{
//
}
...
CVector2 CVector2::getVector()
{
return *this;
}
and the final usement:
CVector2 v1(2,3);
CVector2 v2();
v2 = v1.getVector();
and my GNU compiler gives me as following:
main.cpp:19: error: assignment of function `CVector2 v2()'
main.cpp:19: error: cannot convert `CVector2' to `CVector2 ()()' in assignment
when i use code
CVector2 v1(2,3);
CVector2 v2;
v2 = v1.getVector();
it's ok. why..?
i'm sick of this cause i totally cannot understand why it does not work. could anyone explain me that?