Я передаю значение для копирования конструктора в качестве ссылки, но вызывается бесконечный цикл.Копирующий конструктор вызывает бесконечный цикл
Вот мой класс:
class Vector2f{
private:
GLfloat x;
GLfloat y;
public:
Vector2f();
Vector2f(const GLfloat _x, const GLfloat _y);
Vector2f(const Vector2f &_vector);
~Vector2f();
};
Вот реализация методов:
Vector2f::Vector2f():
x(0.0f),
y(0.0f)
{
DebugLog("Vector2f constructor");
}
Vector2f::Vector2f(const GLfloat _x, const GLfloat _y):
x(_x),
y(_y)
{
DebugLog("Vector2f constructor(%f, %f)", _x, _y);
}
Vector2f::Vector2f(const Vector2f &_vector):
x(_vector.getX()),
y(_vector.getY())
{
DebugLog("Vector2f copy constructor");
}
Vector2f::~Vector2f()
{
}
Вот как я доступ к классу:
Vector2f tempVector1 = Vector2f(0.0f, 0.0f);
DebugLog("tempVector1 initialized");
Vector2f tempVector2;
tempVector2 = Vector2f(0.0f, 0.0f);
DebugLog("tempVector2 initialized");
Результаты я получаю:
Vector2f constructor(0.000000, 0.000000)
tempVector1 initialized
Vector2f constructor
Vector2f constructor(0.000000, 0.000000)
Vector2f copy constructor
Vector2f copy constructor
Vector2f copy constructor
...
Бесконечный цикл возникает при попытке инициализировать ранее созданный объект. Если я пытаюсь скопировать tempVector1 в tempVector 2 бесконечный цикл происходит так:
Vector2f tempVector2;
tempVector2 = Vector2f(tempVector1);
Почему это происходит и как я могу предотвратить его попадание в бесконечный цикл?
Заранее спасибо.
Вы не забыли '&' в 'Vector2f (const Vector2f & _vector);'? –
@ Кирилл. Правда. Он не компилируется. Не удается найти 'getX' и' getY'. –