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

Sir*_*lot -1 c++

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

Cube* cube1;
Run Code Online (Sandbox Code Playgroud)

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

Clo*_*ric 6

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

你正在调用的变量cube1是指向a的指针Cube.

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

Cube* cube1 = new Cube();
Run Code Online (Sandbox Code Playgroud)

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

要么:

Cube cube1;
Run Code Online (Sandbox Code Playgroud)

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

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

  • 编译器不检查指针是否实际指向任何东西,因为在大多数情况下它不可能知道.程序员必须确保在将指针分配给合法对象之前避免使用指针. (3认同)