當前位置:
首頁 >
类对象和类指针深入分析与对比
發布時間:2025/3/15
30
豆豆
生活随笔
收集整理的這篇文章主要介紹了
类对象和类指针深入分析与对比
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.前言
Student a; s.setName("A");//Studeng *b = new Student(); Student *b; b = new Student(); b->setName("B");類對象基本格式是:Student a;
在定義之后就已經為a這個對象分配了內存,且為內存棧;
類指針基本格式是:Student *b = new Student();
在定義*b的時候并沒有分配內存,只有執行new后才會分配內存,且為內存堆。
2.類指針和類對象的對比分析
2.1 兩者的區別
| 類對象 | 類指針 | |
| 定義 | 利用構造函數在內存中分配一塊區域 (對類初始化,成員變量賦值) | 是個內存地址值,指向內存中 存放的類對象 |
| 使用 | 對象使用“.” 生存周期:由析構函數負責清除 | 指針使用“->” 生存周期:需要用delete在相應 的地方釋放分配的內存塊 |
| 存儲 | 用的是內存棧 是個局部的臨時變量 | 用的是內存堆 永久變量,除非刪除它 |
| 多態 | 不行 | 可以 |
| 訪問 | 直接訪問 | 間接訪問 |
2.2 兩者的聯系
在類的聲明尚未完成的情況下,可以聲明指向該類的指針,但是不可聲明該類的對象;
父類的指針可以指向子類的對象。
2.3 強大的指針與多態
通過前面可知:類指針是一個指向內存中存放類對象的內存地址值,那么這個指針可以指向多個不同的對象,這就是多態;
拓展:指針與虛函數
要發揮虛函數的強大作用,必須使用指針來訪問對象。
當類是有虛函數的基類,Func是它的一個虛函數,則調用Func時:
類對象:調用的是它自己的Func;
類指針:調用的是分配給它空間時那種類的Func。
2.4?什么情況使用類對象與類指針?
其實作用基本一樣 都是為了調用類的成員變量和成員函數用的;
當你希望明確使用這個類的時候,最好使用對象;
如果你希望使用C++中的動態綁定,則最好使用指針或者引用,指針和引用用起來更靈活,容易實現多態等。
2.5?指針好處
第一,實現多態。
第二,在函數調用,傳指針參數。不管你的對象或結構參數多么龐大,你用指針,傳過去的就是4個字節。如果用對象,參數 ? 傳遞占用的資源就太大了。
總結
以上是生活随笔為你收集整理的类对象和类指针深入分析与对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞鸽传书(IPMSG)的主要工作原理
- 下一篇: 又是飞鸽传书软件