c++ - C++ 初始化中的 *

标签 c++

<分区>

Possible Duplicate:
The Definitive C++ Book Guide and List

初始化类时 * 是什么意思? 通常在 AS3 中我会这样做:

MyClass myClass = new MyClass

但是我在c++中看到过这个

 MyClass *myClass = new MyClass

星星有什么用?我看到它有时被使用,而其他人则没有。

最佳答案

C++ 中的星号有很多含义,这取决于它在程序中的位置。在此特定实例中,它将 myClass 的含义修改为指向 MyClass 实例的指针,而不是 实例我的类(class)

两者之间的区别在于,实例的生命周期在超出范围时结束,而您通过指针分配和引用的实例即使在指针超出范围后仍然有效。

这样的声明是有效的:

MyClass myClass; // no "new"

在这种情况下,不必使用new,但实例的生命周期与变量myClass 的范围有关。

关于c++ - C++ 初始化中的 *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12915395/

相关文章:

c++ - GetGuiResources WIn32 API 用法

c++ - VS2008中一个奇怪的双重计算

c++ - 在函数中填充容器避免段错误

c++ - 同时处理非成员函数指针和成员函数指针

c++ - 辛>>一>>乙; C++ 错误

c++ - stdlib fopen 中的缓存如何工作?

c++ - 使用 c++ ios::ate 得到错误的文件大小

c++ - 简单的分布式图 BGL 示例

c++ - 当多维数组是结构的属性时,如何通过引用传递它?

c++ - Qt/C++ : Is "static_cast" ok for casting in this snippet of code?