概述
#include<iostream>
using namespace std;
//1、malloc和free是C语言中的函数
// 而new和delete是C++中的操作符
//2、malloc和new最根本的区别是,new可以调用构造函数初始化对象
// free和delete最大的区别是,delete可以调用析构函数
//3、当申请空间的对象为基础类型和数组时,malloc和delete可以搭配使用,new和free可以搭配使用
// 而当申请空间的是类的对象时,不可以混搭
class test
{
public:
test(int a)
{
m_a = a;
cout << "I am test()" << endl;
}
~test()
{
cout << "I am ~test()" << endl;
}
private:
int m_a;
};
void main()
{
//1、分配基础类型
//c语言中
int *p = (int*)malloc(sizeof(int));
free(p);
//C++中
int *p1 = new int;
delete p1;
//2、分配数组
//c语言中
int *p3 = (int*)malloc(sizeof(int) * 10);
free(p3);
//c++中
int *p4 = new int[10];
delete[] p4;
//3、给类分配空间
//在C++中,用new申请空间时,会自动调用构造函数,用delete删除空间时,会自动调用析构函数
//C语言中
test *p5 = (test*)malloc(sizeof(test));
free(p5);
//C++中
test *p6 = new test(10);
delete p6;
system("pause");
}
最后
以上就是稳重百褶裙为你收集整理的C++ new和delete的全部内容,希望文章能够帮你解决C++ new和delete所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复