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

首頁 > 學院 > 開發設計 > 正文

const的常見用法

2019-11-10 17:29:17
字體:
來源:轉載
供稿:網友

1.用于定義常量變量:

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

2.const作為形式參數:

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

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

3. 節約內存空間:

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

const定義的變量,系統只為它分配一次內存,而使用#define定義的常量宏,能分配好多次,這樣const就很節約空間

4.類中使用const修飾函數防止修改非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.修飾函數返回值,防止返回值被改變:

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),在類的構造函數上初始化:

Class Test{ public: Test():b(23){ } //構造函數上初始化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++文件調用

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

9.const修飾引用變量:

int b=10;const int &a=b;a=11; //會報錯b=11; //不會報錯
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 额尔古纳市| 克东县| 治县。| 吕梁市| 沛县| 江门市| 郯城县| 兰溪市| 五台县| 扬州市| 抚远县| 海宁市| 冀州市| 友谊县| 泰顺县| 绥江县| 墨竹工卡县| 调兵山市| 法库县| 宝兴县| 栖霞市| 福贡县| 苏尼特右旗| 武强县| 珲春市| 错那县| 哈密市| 太原市| 札达县| 西青区| 黑水县| 海淀区| 杭锦后旗| 上饶县| 西和县| 本溪| 深圳市| 普安县| 夏邑县| 屏边| 阳新县|