C++中指向對象的常指針與指向常對象的指針詳解。本站提示廣大學習愛好者:(C++中指向對象的常指針與指向常對象的指針詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C++中指向對象的常指針與指向常對象的指針詳解正文
指向對象的常指針
將指向對象的指針變量聲明為const型,並使之初始化,如許指針值一直堅持為其初始值,不克不及轉變。
Time t1(10,12,15),t2;
Time * const ptr1=&t1;
ptr1=&t2;
界說指向對象的常指針的普通情勢為
類名 * const 指針變量=對象地址;
留意應當在界說指針變量時使之初始化
指向對象的常指針變量的值不克不及被轉變,即一直指向統一個對象,但可以轉變其所指向對象中的數據成員(非const型)的值。
常常用常指針作為函數的形參,目標是不許可在函數履行進程中轉變指針變量的值,使其一直指向本來的對象。假如在函數的履行進程中,修正了該形參的值,編譯體系就會湧現毛病,給出失足信息,如許比用人工來包管形參值不被修正更靠得住
指向常對象的指針
假如一個變量曾經被聲明成常變量,則只能用指向常變量的指針變量指向它,而不克不及用普通的(非const型的)指針變量指向它。
const int a;//界說常變量a
const int *p;//界說指向常變量的指針
p=&a;
關於對象也是如斯,假如聲明一個對象為常對象,則只能用指向常對象的指針指向它,而不克不及用普通的(非const型的)指針變量指向它。
const Time t1;//界說常對象
const Time *p;//界說指向常對象的指針
p=t1;
界說指向常對象的指針變量的格局
const 類名 * 指針名;
有以下幾點須要留意:
(1)一個指向常對象的指針是可以指向一個非const型的對象的,然則指向的對象是不克不及經由過程指針來轉變的。
而一個常對象只能由指向常對象的指針指向,詳細看表:
(2)留意指向常對象的指針和指向對象的常指針的差異(4)假如界說了一個指向常對象的指針變量,是不克不及經由過程它轉變所指向的對象的值的,然則指針變量自己的值是可以轉變的。
const Time *p=&t1;//界說指向常對象的指針變量p,並指向對象t1
p=&t2;//p改成指向t2,正當