欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++關(guān)鍵字const使用方法詳解

 更新時(shí)間:2022年12月01日 10:35:41   作者:漂泊的小森  
C語言中的const與C++有很大的不同,在C語言中用const修飾的變量仍是一個(gè)變量,表示這個(gè)變量是只讀的,不可顯示地更改,C++中的const關(guān)鍵字的用法非常靈活,而使用const將大大改善程序的健壯性,const關(guān)鍵字是一種修飾符

const-----英語全稱(constant)-----常數(shù),常量的意思

在c++中的常用來修飾變量或者對(duì)象,意味著不能被更新。

1:const+變量------限定變量的值,無法修改,對(duì)變量起保護(hù)作用,增加程序的健壯性;必須進(jìn)行初始化。

const int a=100;
a=1000;//錯(cuò)誤,無法修改
const int b;//錯(cuò)誤,沒有進(jìn)行初始化

2:const+指針--------表示著常量指針,指針常量,指向常量的常指針。

(1)指向常量的指針---常量指針(指針的指向(內(nèi)存地址)可以更改,指針的值不可以修改)

const int *h
int const *h
(這兩個(gè)等價(jià))

例如:

int g=100;
int s=200;
const int *p=&g;
//修改指針p的地址可以嗎?
p=&s;
//修改指針p的值可以嗎?
*p=10000;

(&是取址符,因?yàn)閜是地址,*P是解引出指針的地址)

(2)指向指針的常量----指針常量(指針的指向(內(nèi)存地址不可以更改),指針的值可以修改)

int*const h

例如:

int g=100;
int s=200;
 int *const p=&g;
//修改指針p的地址可以嗎?
p=&s;
//修改指針p的值可以嗎?
*p=10000;

總結(jié):const放在*的后面,意味著指針是常量,指針的值儲(chǔ)存的是數(shù)據(jù)的內(nèi)存地址,所以內(nèi)存地址不能改變,但地址指向的數(shù)據(jù)是可以改變的。(指針常量)

const放在*前面,意味著指針的指向的內(nèi)存數(shù)據(jù)不可以改變,但指向的地址可以改變。(常量指針)

(3)指向常量的常指針--------指針的指向不可以修改,指針指向的值也不可以修改

例如:

int g=100;
int s=200;
const int *const p=&g;
//修改指針p的地址可以嗎?
p=&s;
//修改指針p的值可以嗎?
*p=10000;

3.const+函數(shù)--------(1)使函數(shù)的返回值不能改變;(2)使函數(shù)的參數(shù)在函數(shù)體內(nèi)不可改變。

const int func();
const int* func();
void func(const int a,const int *o);

4:const+類

(1)const修飾類中的成員函數(shù)-----類中的成員函數(shù)后面加上const(區(qū)分const+函數(shù))

①該成員函數(shù)不能改變類中的成員變量

②加了const的成員函數(shù)可以被非const對(duì)象和const對(duì)象調(diào)用 但不加const的成員函數(shù)只能被非const對(duì)象調(diào)用

③const修飾的成員函數(shù)中不能調(diào)用其他的沒有被const修飾過的成員函數(shù)

class Person {
public:
	Person() {
		m_A = 0;
		m_B = 0;
	}
	void ShowPerson() const {
		this->m_B = 100;//this指針的本質(zhì)是一個(gè)指針常量,指針的指向不可修改,在const修飾的成員函數(shù)中,內(nèi)存空間的指向的值也不能修改,意味著這是一個(gè)指向常量的常指針,但如果用mutable修飾變量,就可以修改。
	}
	void MyFunc() const {
		//mA = 10000;
	}
public:
	int m_A;
	mutable int m_B; //可修改 可變的
};

(2)const修飾類中的成員變量-----(讓成員變量變?yōu)椴豢尚薷牡淖兞浚?/p>

(3)const修飾類對(duì)象

//const修飾對(duì)象  常對(duì)象
void test01() {
	const Person person; //常量對(duì)象  
	cout << person.m_A << endl;
	//person.mA = 100; //常對(duì)象不能修改成員變量的值,但是可以訪問
	person.m_B = 100; //但是常對(duì)象可以修改mutable修飾成員變量
	//常對(duì)象訪問成員函數(shù)
	person.MyFunc(); //常對(duì)象不能調(diào)用const的函數(shù)
}

到此這篇關(guān)于C++關(guān)鍵字const使用方法詳解的文章就介紹到這了,更多相關(guān)C++關(guān)鍵字const內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Qt創(chuàng)建并顯示柱狀圖的方法

    Qt創(chuàng)建并顯示柱狀圖的方法

    Qt Charts 模塊提供了一套易于使用的圖表組件,本文主要介紹了Qt創(chuàng)建并顯示柱狀圖,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • C++ 大根堆排序?qū)W習(xí)筆記

    C++ 大根堆排序?qū)W習(xí)筆記

    這篇文章主要為大家介紹了C++ 大根堆排序的學(xué)習(xí)教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • C++精要分析decltype的作用及用法

    C++精要分析decltype的作用及用法

    decltype是C++11新增的一個(gè)關(guān)鍵字,和auto的功能一樣,用來在編譯時(shí)期進(jìn)行自動(dòng)類型推導(dǎo)。引入decltype是因?yàn)閍uto并不適用于所有的自動(dòng)類型推導(dǎo)場景,在某些特殊情況下auto用起來很不方便,甚至壓根無法使用
    2022-05-05
  • C語言數(shù)據(jù)結(jié)構(gòu)之模式匹配字符串定位問題

    C語言數(shù)據(jù)結(jié)構(gòu)之模式匹配字符串定位問題

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之模式匹配字符串定位問題的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • C語言指針詳解

    C語言指針詳解

    這篇文章非常詳細(xì)的講解了C語言中指針的概念,包含多種方法,多種定義,全面的說明了C語言的特性
    2021-06-06
  • C語言實(shí)現(xiàn)洗牌與發(fā)牌游戲

    C語言實(shí)現(xiàn)洗牌與發(fā)牌游戲

    這篇文章主要為大家詳細(xì)介紹了C語言洗牌與發(fā)牌游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • visual studio 2015下boost庫配置教程

    visual studio 2015下boost庫配置教程

    這篇文章主要為大家詳細(xì)介紹了visual studio 2015下boost庫的配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • C語言刪除輸入字符串中的空格示例代碼

    C語言刪除輸入字符串中的空格示例代碼

    最近工作中遇到了需求,要?jiǎng)h除字符串中的所有空格,就要篩選出空格字符,這篇文章主要給大家介紹了關(guān)于利用C語言刪除輸入字符串中的空格的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • QT生成隨機(jī)驗(yàn)證碼的方法

    QT生成隨機(jī)驗(yàn)證碼的方法

    這篇文章主要為大家詳細(xì)介紹了QT生成隨機(jī)驗(yàn)證碼的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 深入解析C++編程中__alignof 與__uuidof運(yùn)算符的使用

    深入解析C++編程中__alignof 與__uuidof運(yùn)算符的使用

    這篇文章主要介紹了C++編程中__alignof 與__uuidof運(yùn)算符的使用,是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-01-01

最新評(píng)論