#include <iostream>
#include <string.h>
using namespace std;
//1.new和delete操作基本类型的空间
//1.1.new和malloc delete和free 的区别:
//a.new 不用强制类型转换
//b.new 在申请空间的时候,可以初始化空间内容
void test01() //new 申请基本类型的变量
{
int *p = NULL;
//p = (int*)malloc(sizeof(int));
p = new int(10); //申请 int 堆区空间,并初始化为10.
//*p = 100;
cout << "*p = " << *p << endl;
//free(p);
delete p;
}
void test02() //new 申请基本类型的数组
{
int *arr = NULL;
//arr = new int[5];
arr = new int[5]{10, 20, 30, 40, 50}; //申请数组 5个int 元素的堆区空间
for(int i=0; i<5; i++)
{
cout << arr[i] << " ";
}
cout << endl;
delete [] arr; //如果new有[],delete就必须有[]
}
//2.new和delete操作类的空间
//a.malloc不会调用构造函数 free不会调用析构函数
//b.new会调用构造函数 delete调用析构函数
class A
{
public:
int ma;
A()
{
ma = 0;
cout <<
C++ 语法 - 5. new 和 delete 堆区空间操作、静态成员、单例模式、类的存储结构、this指针、const修饰成员函数 - 详解
于 2023-04-20 22:20:40 首次发布