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,不止会分配内存,也会调用构造、析构函数,初始化对象。