我傳遞一個值來複制構造函數作爲引用,但正在調用一個無限循環。複製構造函數調用一個無限循環
這裏是我的類:
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)中的'&';'? – 2010-01-28 08:39:46
@Kirill。真正。它不會編譯。找不到'getX'和'getY'。 – 2010-01-28 08:48:39