C ++ - 运行时检查失败#2

时间:2017-10-24 23:40:17

标签: c++ stack runtime-error corruption stack-corruption

我对C ++很陌生,我试图实现一个简单的矢量类。 该类只包含三个浮点数和四个不同的构造函数。

class vector3D {
private:
    float x, y, z;
public:
    vector3D();
    vector3D(const float);
    vector3D(const float, const float, const float);
    vector3D(const vector3D& v);
};

vector3D::vector3D() {
    x = 0;
    y = 0;
    z = 0;
}

vector3D::vector3D(const float c) {
    x = c;
    y = c;
    z = c;
}

vector3D::vector3D(const float cx, const float cy, const float cz) {
    x = cx;
    y = cy;
    z = cz;
}

vector3D::vector3D(const vector3D& v) {
    x = v.x;
    y = v.y;
    z = v.z;
}

我做了一个小例子,只是为了说明错误:在main内部我调用一个函数,在该函数中我创建了3个向量(a,b和c)。当我退出该功能时,我收到错误:"运行时检查失败#2 - 堆叠变量' b'已经腐败了。"。有时错误也在c或a中。

void function() {
    vector3D a = vector3D();
    vector3D b = vector3D(3);
    vector3D c = vector3D(3, 4, 5);
}

int main() {
    function();
    return 0;
}
你知道吗?我做错了什么?

1 个答案:

答案 0 :(得分:0)

类定义是声明。所以,你在课后支持半音。

Integer.MAX_VALUE