类对象既可以定义类对象,也可以定义类对象指针,然后再通过 new 创建类对象
时间: 2023-10-01 19:08:22 浏览: 167
是的,类对象可以通过以下三种方式来创建:
1. 直接定义类对象:使用类名和对象名来定义类对象,例如:
```c++
MyClass obj;
```
这种方式会在栈上分配存储空间,对象的生命周期与作用域相同。
2. 定义类对象指针:使用类名和指针名来定义类对象指针,例如:
```c++
MyClass* pObj;
```
这种方式只是定义了一个指针变量,没有为对象分配存储空间。指针变量可以指向已经存在的类对象,也可以通过 new 操作符来动态分配存储空间并创建类对象,例如:
```c++
pObj = new MyClass();
```
这种方式会在堆上分配存储空间,对象的生命周期需要在适当的时候使用 delete 操作符进行手动释放。
3. 声明类对象指针并初始化:使用类名和指针名来声明类对象指针,并在声明时对其进行初始化,例如:
```c++
MyClass* pObj = new MyClass();
```
这种方式相当于将第二种方式中的分配和初始化操作合并到了一起。
需要注意的是,使用第二种和第三种方式创建的类对象,需要在使用完毕后手动释放,否则会造成内存泄漏。
阅读全文