日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++对象的动态建立

發布時間:2023/12/2 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++对象的动态建立 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++對象的動態建立和釋放

在C++中,如果定義的對象是靜態的,在程序運行過程中,對象所占的空間是不能隨時釋放的。

為提高內存空間的利用率,希望在需要用到對象時才建立對象,在不需要用該對象時就撤銷它,釋放它所占的內存空以供別的數據使用。

如果前面章節跟隨小林的學習路線學習,應該知道可以用new運算符動態地分配內存,用delete運算符釋放這些內存空間,C++對象同樣適用,可以用new運算符動態建立對象,用delete運算符撤銷對象。?

用new運算符動態地分配內存后,將返回一個指向新對象的指針的值,即所分配的內存空間的起始地址,程序員可以獲得這個地址,并通過這個地址來訪 問這個對象。

C++允許在執行new時,對新建立的對象進行初始化。

用new建立的動態對象一般是不用對象名的,是通過指針訪問的,主要應用于動態的數據結構,如鏈表。

訪問鏈表中的結點,并不需要通過對象名,而是在上一個結點中存放下一個結點的地址,從而由上一個結點找到下一個結點,構成鏈接的關系。?

在執行new運算時,如果內存量不足,無法開辟所需的內存空間,目前大多數C++編譯系統都使new返回一個0指針值,根據返回值是否為0,可以判斷分配內存是否成功。

C++使用delete運算符時,在釋放內存空間之前,會自動調用析構函數。

C++對象賦值

C++對象之間的賦值可以通過賦值運算符=來實現。?

對象賦值的一般形式為

對象名1?=?對象名2;

對象名1和對象名2必須屬于同一個類。

案例:C++對象賦值

#include? using?namespace?std; class?Box?//盒子類? {public?:Box(int?=10,int?=10,int?=10);?//聲明有默認參數的構造函數int?volume( );?//聲明求體積函數?private?:int?height;?//高?int?width;?//寬?int?length;?//長? }; Box::Box(int?h,int?w,int?len) {height=h;width=w;length=len; } int?Box::volume( ) {return?height*width*length;?//求體積 } int?main( ) {Box?box1(2,3,4);?//定義對象box1cout<<"box1的體積是:"<endl;Box box2;?//定義對象box2box2=box1;?//將box1的值賦給box2cout<<"box2的體積是:"<endl;?return?0; }

編譯運行結果:

box1的體積是:24 box2的體積是:24-------------------------------- Process exited after?0.7038?seconds?with?return?value?0 請按任意鍵繼續. . .

聲明:

本文于網絡整理,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯系我們刪除或授權事宜。

總結

以上是生活随笔為你收集整理的C++对象的动态建立的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。