C++之对象的动态创建和释放

来源:互联网 发布:c语言单竖线 编辑:程序博客网 时间:2024/06/11 05:38
////程序分析
#include <stdio.h>#include <stdlib.h>// malloc 和 free:它们本身不是C语言的语法的一部分,是库函数提供的   函数// new  和 delete: 它们本身是C++语言的一部分,是 运算符 不是 函数// 创建普通类型变量int main12_1(){int *p1 = (int *)malloc(sizeof(int));free(p1);// new + 数据类型int *p2 = new int;*p2 = 10;printf ("*p2 = %d\n", *p2);// 释放 new 出来的空间delete p2;// new 可以在申请空间进行初始化int *p3 = new int(90);printf ("*p3 = %d\n", *p3);delete p3;return 0;}// 申请数组int main12_2(){int *p = (int *)malloc(sizeof(int) * 10);free(p);// 用 new 申请数组 new + 数据类型[size]int *p1 = new int[10];// deleta释放数组 必需要加 [] delete [] p1;return 0;}class Test12{public:Test12(int a, int b){m_a = a;m_b = b;printf ("构造函数\n");}~Test12(){printf ("析构函数\n");}private:int m_a;int m_b;};// 动态创建对象int main12_3(){Test12 *p = (Test12 *)malloc(sizeof(Test12));free(p);// new 在创建对象的时候会自动构造函数进行对象的构建Test12 *p1 = new Test12(10,20);// delete在进行释放对象的时候会自动调用析构函数进行对象资源的回收delete p1;return 0;}


ss