Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ delete

作者:终生卟离   发布日期:2025-05-06   浏览:27

#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;
}

解释说明:

  1. 动态分配内存:使用 new 操作符可以动态分配内存,创建一个对象。在这个例子中,MyClass* obj = new MyClass(); 创建了一个 MyClass 类型的对象,并返回指向该对象的指针。
  2. 释放内存:使用 delete 操作符可以释放之前通过 new 分配的内存。delete obj; 会调用对象的析构函数并释放其占用的内存。
  3. 避免悬空指针:在调用 delete 后,指针仍然保留原来的地址值,但该地址所指向的内存已经被释放。继续使用该指针(如 obj->sayHello();)会导致未定义行为,因此应避免这种情况。

希望这段代码和解释对你有帮助!

上一篇:c++ 判断文件是否存在

下一篇:c++ static_cast

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++freopen怎么用

c++ 获取系统时间

c++进制转换函数

c++ tcp

c++ gcd函数

c++ cli

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站