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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

类对象和类指针深入分析与对比

發(fā)布時(shí)間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 类对象和类指针深入分析与对比 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.前言

Student a; s.setName("A");//Studeng *b = new Student(); Student *b; b = new Student(); b->setName("B");類對(duì)象基本格式是:Student a;

在定義之后就已經(jīng)為a這個(gè)對(duì)象分配了內(nèi)存,且為內(nèi)存棧;
類指針基本格式是:Student *b = new Student();

在定義*b的時(shí)候并沒有分配內(nèi)存,只有執(zhí)行new后才會(huì)分配內(nèi)存,且為內(nèi)存堆。

2.類指針和類對(duì)象的對(duì)比分析

2.1 兩者的區(qū)別


類對(duì)象類指針
定義利用構(gòu)造函數(shù)在內(nèi)存中分配一塊區(qū)域
(對(duì)類初始化,成員變量賦值)
是個(gè)內(nèi)存地址值,指向內(nèi)存中 存放的類對(duì)象
使用對(duì)象使用“.”
生存周期:由析構(gòu)函數(shù)負(fù)責(zé)清除
指針使用“->”
生存周期:需要用delete在相應(yīng)
的地方釋放分配的內(nèi)存塊
存儲(chǔ)用的是內(nèi)存棧
是個(gè)局部的臨時(shí)變量
用的是內(nèi)存堆
永久變量,除非刪除它
多態(tài)不行可以
訪問直接訪問間接訪問

2.2 兩者的聯(lián)系

在類的聲明尚未完成的情況下,可以聲明指向該類的指針,但是不可聲明該類的對(duì)象;
父類的指針可以指向子類的對(duì)象。

2.3 強(qiáng)大的指針與多態(tài)

通過前面可知:類指針是一個(gè)指向內(nèi)存中存放類對(duì)象的內(nèi)存地址值,那么這個(gè)指針可以指向多個(gè)不同的對(duì)象,這就是多態(tài);
拓展:指針與虛函數(shù)
要發(fā)揮虛函數(shù)的強(qiáng)大作用,必須使用指針來訪問對(duì)象。
當(dāng)類是有虛函數(shù)的基類,Func是它的一個(gè)虛函數(shù),則調(diào)用Func時(shí):
類對(duì)象:調(diào)用的是它自己的Func;
類指針:調(diào)用的是分配給它空間時(shí)那種類的Func。

2.4?什么情況使用類對(duì)象與類指針?

其實(shí)作用基本一樣 都是為了調(diào)用類的成員變量和成員函數(shù)用的;
當(dāng)你希望明確使用這個(gè)類的時(shí)候,最好使用對(duì)象;
如果你希望使用C++中的動(dòng)態(tài)綁定,則最好使用指針或者引用,指針和引用用起來更靈活,容易實(shí)現(xiàn)多態(tài)等。

2.5?指針好處

第一,實(shí)現(xiàn)多態(tài)。
第二,在函數(shù)調(diào)用,傳指針參數(shù)。不管你的對(duì)象或結(jié)構(gòu)參數(shù)多么龐大,你用指針,傳過去的就是4個(gè)字節(jié)。如果用對(duì)象,參數(shù) ? 傳遞占用的資源就太大了。


總結(jié)

以上是生活随笔為你收集整理的类对象和类指针深入分析与对比的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。