国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

new delete 基礎應用

2019-11-14 08:43:57
字體:
來源:轉載
供稿:網友

new delete基礎

基礎應用

#include "iostream"using namespace std;int main(){	//1.基礎的使用	//new 基本類型	int *p = (int *)malloc(sizeof(int));	free(p);	int *p2 = new int;	delete p2;	//分配數組	int *p3 = new int[4];	p3[0] = 1;	p3[1] = 2;	p3[2] = 2;	p3[3] = 3;	cout << p3[0] << endl;	delete[] p3;	system("pause");	return 0;}這里面只需要注意一點就是基礎類型和數組類型的刪除區別就OK。

深入

1.區別
#include "iostream"using namespace std;class MyClass{public:	MyClass()	{		cout << "我是構造函數" << endl;	}	~MyClass()	{		cout << "我是析構函數" << endl;	}PRivate:};int main(){	//1.基礎的使用	//new 基本類型	int *p = (int *)malloc(sizeof(int));	//free(p);	delete p;	int *p2 = new int;	//delete p2;	free(p2);	//分配數組	int *p3 = new int[4];	p3[0] = 1;	p3[1] = 2;	p3[2] = 2;	p3[3] = 3;	cout << p3[0] << endl;	//delete[] p3;	free(p3);	//我們在這里發現如果我用malloc和用new創建的基礎對象在使用方面沒什么區別	//free和delete也可以相互的刪除new和malloc的內存	//區別在對象的時候不一樣	MyClass *my = (MyClass *)malloc(sizeof(MyClass));	system("pause");	return 0;}我們發現沒有執行構造函數。
#include "iostream"using namespace std;class MyClass{public:	MyClass()	{		cout << "我是構造函數" << endl;	}	~MyClass()	{		cout << "我是析構函數" << endl;	}private:};int main(){	//1.基礎的使用	//new 基本類型	int *p = (int *)malloc(sizeof(int));	//free(p);	delete p;	int *p2 = new int;	//delete p2;	free(p2);	//分配數組	int *p3 = new int[4];	p3[0] = 1;	p3[1] = 2;	p3[2] = 2;	p3[3] = 3;	cout << p3[0] << endl;	//delete[] p3;	free(p3);	//我們在這里發現如果我用malloc和用new創建的基礎對象在使用方面沒什么區別	//free和delete也可以相互的刪除new和malloc的內存	//區別在對象的時候不一樣	MyClass *my = (MyClass *)malloc(sizeof(MyClass));	MyClass *my1 = new MyClass();	system("pause");	return 0;}new的話可以執行構造函數
#include "iostream"using namespace std;class MyClass{public:	MyClass()	{		cout << "我是構造函數" << endl;	}	~MyClass()	{		cout << "我是析構函數" << endl;	}private:};int main(){	//1.基礎的使用	//new 基本類型	int *p = (int *)malloc(sizeof(int));	//free(p);	delete p;	int *p2 = new int;	//delete p2;	free(p2);	//分配數組	int *p3 = new int[4];	p3[0] = 1;	p3[1] = 2;	p3[2] = 2;	p3[3] = 3;	cout << p3[0] << endl;	//delete[] p3;	free(p3);	//我們在這里發現如果我用malloc和用new創建的基礎對象在使用方面沒什么區別	//free和delete也可以相互的刪除new和malloc的內存	//區別在對象的時候不一樣	MyClass *my = (MyClass *)malloc(sizeof(MyClass));	free(my);	MyClass *my1 = new MyClass();	delete(my1);	system("pause");	return 0;}

總結

從以上的代碼中我們可以看出,malloc和free是不執行構造函數和析構函數的,但是new和delete他們組成是要自動調用構造函數還有析構函數的。如果是基礎的類型的話這兩者基本上沒有區別。
上一篇:疑問拾遺

下一篇:面向對象

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南靖县| 高邮市| 岗巴县| 壤塘县| 丰顺县| 思南县| 岳阳市| 蓬安县| 抚宁县| 茂名市| 哈巴河县| 崇礼县| 清新县| 武义县| 汾阳市| 红河县| 黎川县| 额敏县| 庆城县| 河源市| 米脂县| 万年县| 厦门市| 新干县| 慈溪市| 容城县| 桦甸市| 水富县| 厦门市| 和平县| 临武县| 锡林浩特市| 兴山县| 余姚市| 贵德县| 施甸县| 新密市| 五常市| 贵溪市| 大安市| 喀喇沁旗|