Witam,
mam problem z przeciążeniem operatora '='.
#pragma once
#include <cmath>
class Vector4D
{
public:
Vector4D(float fX = 0.0f, float fY = 0.0f, float fZ = 0.0f, float fA = 0.0f);
~Vector4D();
float length();
Vector4D operator+(const Vector4D &v) const;
FLOAT* operator=(const Vector4D &f) const
{
m_pFloat = new FLOAT[4];
m_pFloat[0] = f.m_fX;
m_pFloat[1] = f.m_fY;
m_pFloat[2] = f.m_fZ;
m_pFloat[3] = f.m_fA;
return this->m_pFloat;
}
operator FLOAT*() const { return m_pFloat; }
private:
FLOAT *m_pFloat;
float m_fX, m_fY, m_fZ, m_fA;
};
Otrzymuję taki błąd:
error C3490: 'm_pFloat' cannot be modified because it is being accessed through a const object
Próbowałem również użycie zmiennej lokalnej w
FLOAT* operator=(const Vector4D &f) const
, ale nie wiem co mam wtedy zwrócić w operator FLOAT*() const ;