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

c++關鍵字const的用法詳解

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

C語言const的用法

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

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

1、指向常量的指針變量

const int *p指針指向int a;

格式為:

const 類型名 * 指針變量名;

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

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

指向常量的指針變量一般用處是作為函數(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;報錯,表達式必須是可以修改的左值。
	cout << a << endl;
	return 0;
}

說明:

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

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

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

4.注意const和*的位置

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

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;//報錯,表達式必須是可以修改的左值。
	//p = &b;//報錯,表達式必須是可以修改的左值。
	a = 100;//合法
	cout << a << endl;
	return 0;
}

4、其他情況

4.1 int *p指針指向const int a(報錯)

#include <iostream>
using namespace std;
int main()
{
	const int  a = 10;
	//int *p = &a;//報錯,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;//報錯,表達式必須是可修改的左值
	//a = 100;//報錯,表達式必須是可修改的左值
	p = &b;//合法
	cout << *p << endl;
	return 0;
}

c++語言const的用法

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

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

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

格式如下:

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

關于常數(shù)據(jù)成員的說明如下:

1、類的常數(shù)據(jù)成員必須進行初始化,而且只能通過構造函數(shù)的成員初始化列表進行初始化。列表中對成員的初始化順序,與他們在列表中的順序無關,而與它們在類中的聲明順序有關。

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

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

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

常成員函數(shù)

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

格式如下:

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

關于常成員函數(shù)的說明:

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

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

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

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

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

常對象

const修飾對象的格式如下:

類名 const 對象名(實參列表):

const類名 對象名(實參列表):

關于常對象的說明:

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

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

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

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

指向常對象的指針變量

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

指向對象的常指針

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

總結

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

相關文章

最新評論