我传递一个值来复制构造函数作为引用,但正在调用一个无限循环。复制构造函数调用一个无限循环
这里是我的类:
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