为什么在这种情况下没有调用我的类的构造函数?

Why is the constructor for my class not being called in this case?

本文关键字:构造函数 我的 调用 这种情况下 为什么      更新时间:2023-10-16

我正在创建一个新的类实例,像这样:

Cube* cube1;

Cube构造函数中有代码,但它没有被运行!这是常事吗?

您实际上没有创建任何实例。

你调用cube1的变量是指向Cube的指针。

要创建一个Cube,您需要:

Cube* cube1 = new Cube();

这将在堆内存中创建一个新的Cube实例,您应该在不再使用它时调用delete cube1

或:

Cube cube1;

这将在堆栈内存中创建一个Cube的新实例,一旦超出作用域,它将被销毁。

p。

您不是在创建一个Cube实例;你正在创建一个指向立方体的指针。

要创建一个指向Cube新实例的指针,您需要这样的代码:

Cube* cube1 = new Cube;