最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c++關(guān)鍵字const的用法詳解

 更新時(shí)間:2021年09月18日 16:29:34   作者:沉迷編程  
在類中,如果你不希望某些數(shù)據(jù)被修改,可以使用const關(guān)鍵字加以限定。const 可以用來(lái)修飾成員變量、成員函數(shù)以及對(duì)象,希望能夠給你帶來(lái)幫助

C語(yǔ)言const的用法

我們知道,const可以修飾一般的變量,這樣的變量我們稱之為常變量,常變量的值是不能修改的。

const也可以修飾指針變量,可以指定指針變量是一個(gè)常量,或者指定指針變量指向的對(duì)象是一個(gè)常量。有以下幾種情況。

1、指向常量的指針變量

const int *p指針指向int a;

格式為:

const 類型名 * 指針變量名;

#include<iostream>
using namespace std;
int main()
{
	int a = 10;
	const int *p = &a;
	//*p = a;//報(bào)錯(cuò),表達(dá)式必須是可以修改的左值。
	a = 20;//合法
	cout << a << endl;
	return 0;
}

分析:用指向常量的指針變量只是限制了通過(guò)指針變量改變它指向的對(duì)象的值,但是可以通過(guò)它本身來(lái)改變它的值。

指向常量的指針變量一般用處是作為函數(shù)參數(shù)

2、常指針(常地址)

int * const p指針指向int a;

形式為:

類型名 * const 指針變量名;

#include<iostream>
using namespace std;
int main()
{
	int a = 10;
	int b = 10;
	int * const p = &a;
	*p = a;//合法
	//p = &b;報(bào)錯(cuò),表達(dá)式必須是可以修改的左值。
	cout << a << endl;
	return 0;
}

說(shuō)明:

1.這種指針變量稱為常指針變量,簡(jiǎn)稱常指針,即指針值(地址)不能改變。

2.必須在定義時(shí)初始化,指定其指向(類似于在建立常變量時(shí)也必須初始化)

3.指針變量的指向不能改變你,但是指針變量的指向變量的值可以改變

4.注意const和*的位置

常指針一般用處在于c++的引用。c++引用的本質(zhì)就是常指針

3、指向常量的常指針

const int * const p指針指向int a;

形式為:

const 類型名 * const 指針變量名;

#include<iostream>
using namespace std;
int main()
{
	int a = 10;
	int b = 10;
	const int * const p = &a;
	//*p = a;//報(bào)錯(cuò),表達(dá)式必須是可以修改的左值。
	//p = &b;//報(bào)錯(cuò),表達(dá)式必須是可以修改的左值。
	a = 100;//合法
	cout << a << endl;
	return 0;
}

4、其他情況

4.1 int *p指針指向const int a(報(bào)錯(cuò))

#include <iostream>
using namespace std;
int main()
{
	const int  a = 10;
	//int *p = &a;//報(bào)錯(cuò),const int不能用于初始化int *
	return 0;
}

4.2const int *p指針指向const int a

#include <iostream>
using namespace std;
int main()
{
	const int  a = 10;
	const int b = 20;
	const int *p=&a;
	//*p = 100;//報(bào)錯(cuò),表達(dá)式必須是可修改的左值
	//a = 100;//報(bào)錯(cuò),表達(dá)式必須是可修改的左值
	p = &b;//合法
	cout << *p << endl;
	return 0;
}

c++語(yǔ)言const的用法

c++是對(duì)c語(yǔ)言的擴(kuò)展,除了上述從c語(yǔ)法繼承過(guò)來(lái)的語(yǔ)法之外,還有自己獨(dú)有的const用法,主要體現(xiàn)在常對(duì)象,常數(shù)據(jù)成員,常成員函數(shù)等方面。

常數(shù)據(jù)成員

在類的數(shù)據(jù)成員聲明前面加上const修飾符就成為了常數(shù)據(jù)成員。

格式如下:

const 數(shù)據(jù)類型 數(shù)據(jù)成員名;

關(guān)于常數(shù)據(jù)成員的說(shuō)明如下:

1、類的常數(shù)據(jù)成員必須進(jìn)行初始化,而且只能通過(guò)構(gòu)造函數(shù)的成員初始化列表進(jìn)行初始化。列表中對(duì)成員的初始化順序,與他們?cè)诹斜碇械捻樞驘o(wú)關(guān),而與它們?cè)陬愔械穆暶黜樞蛴嘘P(guān)。

2、包含常數(shù)據(jù)成員的類不能使用默認(rèn)構(gòu)造函數(shù)。

3、在對(duì)象被創(chuàng)建以后,其常數(shù)據(jù)成員的值就不能被改變。

常數(shù)據(jù)成員總結(jié):其實(shí)加了const修飾之后,就是讓該數(shù)據(jù)成員成了不能修改的左值。

常成員函數(shù)

注意:常數(shù)據(jù)成員的const修飾是放在成員函數(shù)后面的。

格式如下:

函數(shù)類型 成員函數(shù)名(參數(shù)列表) const;

關(guān)于常成員函數(shù)的說(shuō)明:

1、常成員函數(shù)不能修改對(duì)象的數(shù)據(jù)成員值(無(wú)論是否有const修飾)。

2、const修飾發(fā)要加在函數(shù)說(shuō)明的尾部,并且作為函數(shù)類型的一部分,不能省略。如果常成員函數(shù)定義在類外,那么不論是在類內(nèi)聲明,類外定義,都不能省略關(guān)鍵字const。

3、const成員函數(shù)不能訪問(wèn)非const成員函數(shù)。

4、const作為函數(shù)類型的一部分,可以參與區(qū)分重載函數(shù)。

常成員函數(shù)總結(jié):其實(shí)加了const修飾后,就是限制其修改數(shù)據(jù)成員的值(無(wú)論是否有const修飾)和訪問(wèn)非const成員函數(shù)。

常對(duì)象

const修飾對(duì)象的格式如下:

類名 const 對(duì)象名(實(shí)參列表):

const類名 對(duì)象名(實(shí)參列表):

關(guān)于常對(duì)象的說(shuō)明:

1、常對(duì)象的數(shù)據(jù)成員都是為常數(shù)據(jù)成員,不能改變其值,因此在定義常對(duì)象時(shí),構(gòu)造函數(shù)只能用參數(shù)初始化列表對(duì)常數(shù)據(jù)成員初始化。

2、常對(duì)象的成員函數(shù)不自動(dòng)成為常成員函數(shù),且常對(duì)象不能調(diào)用非常成員函數(shù),要想被常對(duì)象調(diào)用,必須聲明為常成員函數(shù)。

3、常對(duì)象在定義時(shí)必須初始化,并且其數(shù)據(jù)值不能改變。

常對(duì)象總結(jié):常對(duì)象就是限制其只能調(diào)用常成員函數(shù)并且讓其數(shù)據(jù)成員變成const數(shù)據(jù)成員。

指向常對(duì)象的指針變量

指向常對(duì)象的指針變量與指向常變量的指針變量是完全一樣的。

指向?qū)ο蟮某V羔?/h3>

指向?qū)ο蟮某V羔樑c指向變量的常指針是完全一樣的。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C語(yǔ)言聯(lián)合體的實(shí)現(xiàn)示例

    C語(yǔ)言聯(lián)合體的實(shí)現(xiàn)示例

    C語(yǔ)言聯(lián)合體是一種特殊的數(shù)據(jù)結(jié)構(gòu),它允許在相同的內(nèi)存位置存儲(chǔ)不同的數(shù)據(jù)類型,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • C++快速排序超詳細(xì)講解

    C++快速排序超詳細(xì)講解

    快速排序是一種高效的排序算法,通過(guò)分治法將數(shù)組劃分為兩部分,遞歸排序,直到整個(gè)數(shù)組有序,通過(guò)代碼解析和示例,詳細(xì)解釋了快速排序的工作原理和實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下
    2025-03-03
  • C++?string如何獲取文件路徑文件名、文件路徑、文件后綴(兩種方式)

    C++?string如何獲取文件路徑文件名、文件路徑、文件后綴(兩種方式)

    這篇文章主要介紹了C++?string如何獲取文件路徑文件名、文件路徑、文件后綴(兩種方式),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2023-06-06
  • C++11 thread多線程編程創(chuàng)建方式

    C++11 thread多線程編程創(chuàng)建方式

    這篇文章主要介紹了C++11 thread多線程編程的相關(guān)知識(shí),包括線程的創(chuàng)建方式結(jié)束方式及互斥鎖的實(shí)例代碼詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • C++協(xié)程實(shí)現(xiàn)序列生成器的案例分享

    C++協(xié)程實(shí)現(xiàn)序列生成器的案例分享

    序列生成器通常的實(shí)現(xiàn)是在一個(gè)協(xié)程內(nèi)部通過(guò)某種方式向外部傳一個(gè)值出去,并且將自己掛起,本文圍繞序列生成器這個(gè)經(jīng)典的協(xié)程案例介紹了協(xié)程的銷毀、co_await 運(yùn)算符、await_transform 以及 yield_value 的用法,需要的朋友可以參考下
    2024-05-05
  • C++傳值、傳址、傳引用的區(qū)別和選擇小結(jié)

    C++傳值、傳址、傳引用的區(qū)別和選擇小結(jié)

    參數(shù)傳遞有傳值、傳址和傳引用這三種,本文主要介紹了C++傳值、傳址、傳引用的區(qū)別和選擇小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • C++中實(shí)現(xiàn)線程安全和延遲執(zhí)行詳解

    C++中實(shí)現(xiàn)線程安全和延遲執(zhí)行詳解

    這篇文章主要為大家詳細(xì)介紹了C++中實(shí)現(xiàn)線程安全和延遲執(zhí)行的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的小伙伴可以了解下
    2024-01-01
  • C++中new的越界訪問(wèn)問(wèn)題

    C++中new的越界訪問(wèn)問(wèn)題

    越界訪問(wèn)指訪問(wèn)了不是程序申請(qǐng)的內(nèi)存區(qū)域,比如申請(qǐng)了5個(gè)字節(jié)的char數(shù)組,結(jié)果讀寫(xiě)數(shù)據(jù)的第六個(gè)元素,或者訪問(wèn)了釋放后的內(nèi)存等等。
    2016-04-04
  • C++實(shí)現(xiàn)LeetCode(188.買賣股票的最佳時(shí)間之四)

    C++實(shí)現(xiàn)LeetCode(188.買賣股票的最佳時(shí)間之四)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(188.買賣股票的最佳時(shí)間之四),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語(yǔ)言中自定義類型詳解

    C語(yǔ)言中自定義類型詳解

    大家好,本篇文章主要講的是C語(yǔ)言中自定義類型詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01

最新評(píng)論

桃江县| 大渡口区| 五家渠市| 铅山县| 华阴市| 眉山市| 芜湖市| 北辰区| 霍林郭勒市| 石景山区| 蓬溪县| 建水县| 霍邱县| 金昌市| 长阳| 兰坪| 磴口县| 南华县| 招远市| 临猗县| 金平| 南部县| 自治县| 大庆市| 晋州市| 呼玛县| 英吉沙县| 周口市| 紫阳县| 连江县| 南涧| 威海市| 桂阳县| 那曲县| 怀来县| 略阳县| 邯郸县| 玉屏| 织金县| 乌拉特后旗| 芷江|