zoukankan      html  css  js  c++  java
  • C++(二十九) — new 和 delete

    1、基本用法,定义变量、数组、对象

    class test
    {
    public:
        test(int a_, int b_)
        {
            a = a_;
            b = b_;
            cout << "构造函数执行" << endl;
        }
        ~test()
        {
            cout << "析构函数执行" << endl;
        }
    private:
        int a;
        int b;
    };
    
    int main()
    {
        // 1、定义一个int指针
        int *p = new int;
        *p = 10;
        // 2、 定义指针时直接初始化赋值
        int *p1 = new int(20);
    
        // 3、定义一个动态的整型数组,就是申请了5个整型数据空间
        int *p2 = new int[5];
        p2[0] = 30;// 给第一个数组空间赋值
    
        cout << *p << "  " << *p1 <<"   "<<*p2<< endl;
    
        // 释放空间
        delete p, p1; // 释放变量
        delete []p2;//对于数组的释放
    
        // 4、定义对象指针
        test *t = new test(1,2);
        delete t;
    
        system("pause");
        return 0;
    }

    2、new 、delete与c的malloc、free的区别

      (1)malloc、free,在定义对象时,只会分配内存大小,不会调用类的构造、析构函数;

      (2)new 、delete,不止会分配内存,也会调用构造、析构函数,初始化对象。

  • 相关阅读:
    机器学习系列(4) 线性回归
    MYSQL系列(5) 电商常用指标查询
    MYSQL系列(4) 关于时间函数的一些写法
    快速排序
    选择排序
    希尔排序
    直接插入排序
    冒泡排序
    Java修饰符大汇总
    字符串实现大数的相加
  • 原文地址:https://www.cnblogs.com/eilearn/p/10213403.html
Copyright © 2011-2022 走看看