国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

const的常見用法

2019-11-09 19:46:12
字體:
供稿:網(wǎng)友

1.用于定義常量變量:

const int Val = 10;Val = 20; //錯誤,不可被修改

2.const作為形式參數(shù):

void fun1(const int &val){ val = 10; //出錯}void main(){ int a = 2; fun1(a); //因為出錯,這個函數(shù)結(jié)束時a的值還是2}

有人會問為什么不按值傳遞,按值傳遞還需要把這個值復制一遍,而引用不需要,使用引用是為了提高效率

3. 節(jié)約內(nèi)存空間:

#define PI 3.14 //使用#define宏const double Pi = 3.14 //使用const,這時候Pi并沒有放入內(nèi)存中double a = Pi; //這時候才為Pi分配內(nèi)存,不過后面再有這樣的定義也不會再分配內(nèi)存double b = PI; //編譯時分配內(nèi)存double c = Pi; //不會再分配內(nèi)存double d = PI; //編譯時再分配內(nèi)存

const定義的變量,系統(tǒng)只為它分配一次內(nèi)存,而使用#define定義的常量宏,能分配好多次,這樣const就很節(jié)約空間

4.類中使用const修飾函數(shù)防止修改非static類成員變量:

class{ public: void fun() const //加const修飾 { a = 10; //出錯,不可修改非static變量 b = 10; //對,可以修改 } PRivate: int a; static int b;};

5.修飾指針:

const int *A; 或 int const *A; //const修飾指向的對象,A可變,A指向的對象不可變*A=10; //會報錯int *const A; //const修飾指針A,A不可變,A指向的對象可變A=&a; //會報錯const int *const A; //指針A和A指向的對象都不可變const int a=10;int *A=&a; //會報錯

6.修飾函數(shù)返回值,防止返回值被改變:

const int fun(); //接收返回值的變量也必須加constconst int a = fun(); //接收的變量也要是const的,int a = fun()是錯誤的

7.修飾類的成員變量:

使用const修飾的變量必須初始化,在類中又不能在定義時初始化,如:

class{ private: //這樣初始化都是錯的: const int b = 10; static const int c = 10;};

初始化const int類型(沒有static),在類的構(gòu)造函數(shù)上初始化:

Class Test{ public: Test():b(23){ } //構(gòu)造函數(shù)上初始化b的值為23 private: const int b;};

初始化static const int這個類型的(帶有static的),在類的外面初始化:

class Test{ private: static const int c;}; const int Test::c=10; //類的外部初始化c為10

8.const定義的對象變量只能作用于這個程序該C/C++文件,不能被該程序的其他C/C++文件調(diào)用

如file1.cpp中,const int val;在file2.cpp中,extern intval; //錯誤,無法調(diào)用要想const定義的對象變量能被其他文件調(diào)用,定義時必須使用extern修飾為extern const int val;非const變量默認為extern,要是const能被其他文件訪問必須顯示指定為extern

9.const修飾引用變量:

int b=10;const int &a=b;a=11; //會報錯b=11; //不會報錯
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 邹平县| 新野县| 泽库县| 象州县| 蒙阴县| 襄汾县| 本溪市| 会理县| 探索| 石棉县| 石景山区| 嫩江县| 镇坪县| 广水市| 西城区| 铜陵市| 浏阳市| 青阳县| 黄石市| 鹤山市| 南投市| 白朗县| 崇左市| 正镶白旗| 慈溪市| 叙永县| 丰城市| 黔东| 云浮市| 阿城市| 仙桃市| 湘阴县| 六盘水市| 肇东市| 武安市| 教育| 昆明市| 晋城| 蓝山县| 涿鹿县| 海安县|