#include <iostream>
class MyClass {
public:
MyClass() {
std::cout << "Constructor called" << std::endl;
}
~MyClass() {
std::cout << "Destructor called" << std::endl;
}
void sayHello() {
std::cout << "Hello from MyClass" << std::endl;
}
};
int main() {
MyClass* obj = new MyClass();
obj->sayHello();
// 使用 delete 释放动态分配的内存
delete obj;
// 尝试访问已删除的对象会导致未定义行为
// obj->sayHello(); // 不要这样做
return 0;
}
new
操作符可以动态分配内存,创建一个对象。在这个例子中,MyClass* obj = new MyClass();
创建了一个 MyClass
类型的对象,并返回指向该对象的指针。delete
操作符可以释放之前通过 new
分配的内存。delete obj;
会调用对象的析构函数并释放其占用的内存。delete
后,指针仍然保留原来的地址值,但该地址所指向的内存已经被释放。继续使用该指针(如 obj->sayHello();
)会导致未定义行为,因此应避免这种情况。希望这段代码和解释对你有帮助!
上一篇:c++ 判断文件是否存在
下一篇:c++ static_cast
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站