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

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

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

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;
}

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

指向常量的指針變量一般用處是作為函數(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;
}

說明:

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ǔ)法繼承過來的語(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ù)成員的說明如下:

1、類的常數(shù)據(jù)成員必須進(jìn)行初始化,而且只能通過構(gòu)造函數(shù)的成員初始化列表進(jìn)行初始化。列表中對(duì)成員的初始化順序,與他們?cè)诹斜碇械捻樞驘o關(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ù)的說明:

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

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

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

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

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

常對(duì)象

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

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

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

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

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é)

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

相關(guān)文章

最新評(píng)論