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

时间:2011-09-23 14:35:13

标签: c++

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

Cube* cube1;

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

2 个答案:

答案 0 :(得分:6)

你实际上并没有创建任何实例。

您正在调用的变量cube1是指向Cube的指针。

要创建多维数据集,您应该:

Cube* cube1 = new Cube();

这会在堆内存中创建一个新的Cube实例,一旦你不再使用它就应该调用delete cube1

或:

Cube cube1;

这会在堆栈内存中创建一个新的Cube实例,一旦超出范围就会被销毁。

PS。你应该得到一本C ++教科书。

答案 1 :(得分:1)

您没有创建多维数据集的实例;你正在创建一个指向多维数据集的指针。

要创建指向多维数据集新实例的指针,您需要这样的代码:

Cube* cube1 = new Cube;