?? 1008092701.txt
字號:
化境編程界-
C++的const類型
化境編程界首頁| 化境軟件庫 | 化境教程庫 | 其它資源 | 化境討論區
| 化境留言板
showTop();
歡迎訪問《化境編程界》| * Email:5xsoft@21cn.com | < 留言板
化境編程界 -> 技術文章 -> C/C++/VC
C++的const類型
[ 作者: pcvc
添加時間: 2001-8-10 8:12:09
]
常類型是指使用類型修飾符const說明的類型,常類型的變量或對象的值是不能被更新的。因此,定義或說明常類型時必須進行初始化。
一般常量和對象常量
1. 一般常量
一般常量是指簡單類型的常量。這種常量在定義時,修飾符const可以用在類型說明符前,也可以用在類型說明符后。如:
int const x=2;
或
const int x=2;
定義或說明一個常數組可采用如下格式:
<類型說明符> const <數組名>[<大小>]…
或者
const <類型說明符> <數組名>[<大小>]…
例如:
int const a[5]={1, 2, 3, 4, 5};
2. 常對象
常對象是指對象常量,定義格式如下:
<類名> const <對象名>
或者
const <類名> <對象名>
定義常對象時,同樣要進行初始化,并且該對象不能再被更新,修飾符const可以放在類名后面,也可以放在類名前面。
常指針和常引用
1. 常指針
使用const修飾指針時,由于const的位置不同,而含意不同。下面舉兩個例子,說明它們的區別。
下面定義的一個指向字符串的常量指針:
char * const prt1 = stringprt1;
其中,ptr1是一個常量指針。因此,下面賦值是非法的。
ptr1 = stringprt2;
而下面的賦值是合法的:
*ptr1 = "m";
因為指針ptr1所指向的變量是可以更新的,不可更新的是常量指針ptr1所指的方向(別的字符串)。
下面定義了一個指向字符串常量的指針:
const * ptr2 = stringprt1;
其中,ptr2是一個指向字符串常量的指針。ptr2所指向的字符串不能更新的,而ptr2是可以更新的。因此,
*ptr2 = "x";
是非法的,而:
ptr2 = stringptr2;
是合法的。
所以,在使用const修飾指針時,應該注意const的位置。定義一個指向字符串的指針常量和定義一個指向字符串常量的指針時,const修飾符的位置不同,前者const放在*和指針名之間,后者const放在類型說明符前。
2. 常引用
使用const修飾符也可以說明引用,被說明的引用為常引用,該引用所引用的對象不能被更新。其定義格式如下:
const <類型說明符> & <引用名>
例如:
const double & v;
在實際應用中,常指針和常引用往往用來作函數的形參,這樣的參數稱為常參數。
在C++面向對象的程序設計中,指針和引用使用得較多,其中使用const修飾的常指針和常引用用得更多。使用常參數則表明該函數不會更新某個參數所指向或所引用的對象,這樣,在參數傳遞過程中就不需要執行拷貝初始化構造函數,這將會改善程序的運行效率。
下面舉一例子說明常指針作函數參數的作法。
#include
const int N = 6;
void print(const int *p, int n);
void main()
{
int array[N];
for (int i=0; i cin>>array[i];
print(array, N);
}
void print(const int *p, int n)
{
cout<<"{"<<*p;
for (int i=1; i cout<<","<<*(p+i);
cout<<"}"< }
常成員函數
使用const關鍵字進行說明的成員函數,稱為常成員函數。只有常成員函數才有資格操作常量或常對象,沒有使用const關鍵字說明的成員函數不能用來操作常對象。常成員函數說明格式如下:
<類型說明符> <函數名> (<參數表>) const;
其中,const是加在函數說明后面的類型修飾符,它是函數類型的一個組成部分,因此,在函數實現部分也要帶const關鍵字。下面舉一例子說明常成員函數的特征。
#include
class R
{
public:
R(int r1, int r2) { R1=r1; R2=r2; }
void print();
void print() const;
private:
int R1, R2;
};
void R::print()
{
cout< }
void R::print() const
{
cout< }
void main()
{
R a(5, 4);
a.print();
const R b(20, 52);
b.print();
}
該例子的輸出結果為:
5,4
20;52
該程序的類聲明了兩個成員函數,其類型是不同的(其實就是重載成員函數)。有帶const修飾符的成員函數處理const常量,這也體現出函數重載的特點。
常數據成員
類型修飾符const不僅可以說明成員函數,也可以說明數據成員。
由于const類型對象必須被初始化,并且不能更新,因此,在類中說明了const數據成員時,只能通過成員初始化列表的方式來生成構造函數對數據成員初始化。
下面通過一個例子講述使用成員初始化列表來生成構造函數。
#include
class A
{
public:
A(int i);
void print();
const int &r;
private:
const int a;
static const int b;
};
const int A::b=10;
A::A(int i):a(i), r(a)
{
}
void A::print()
{
cout< }
void main()
{
A a1(100), a2(0);
a1.print();
a2.print();
}
該程序的運行結果為:
100:10:100
0:10:0
在該程序中,說明了如下三個常類型數據成員:
const int & r;
const int a;
static const int b;
其中,r是常int型引用,a是常int型變量,b是靜態常int型變量。
程序中對靜態數據成員b進行初始化。
值得注意的是構造函數的格式如下所示:
A(int i):a(i),r(a)
{
}
其中,冒號后邊是一個數據成員初始化列表,它包含兩個初始化項,用逗號進行了分隔,因為數據成員a和r都是常類型的,需要采用初始化格式。
相關內容:
showBottom();
申明: 本站
所有內容均是從網上收集,若有侵范你版權的請指出,本站馬上刪除。
© Copyright By 稻香老農 2000.3 - Now | 站務聯系: 5xsoft@21cn.com | OICQ:593737 (只用于站務聯系,不做它用)
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲一区二区在线观看|
国产美女一区二区|
国产女人aaa级久久久级|
欧美日韩免费一区二区三区|
91在线观看地址|
岛国av在线一区|
国产乱码精品一区二区三区av
|
日韩欧美成人一区二区|
色婷婷精品大视频在线蜜桃视频|
国产高清精品在线|
极品美女销魂一区二区三区免费|
久久精品理论片|
精品一区二区三区在线观看国产|
亚洲一区二区不卡免费|
国产精品国产三级国产专播品爱网|
国产精品久久久久久久久免费樱桃
|
午夜欧美电影在线观看|
免费看日韩a级影片|
韩国v欧美v日本v亚洲v|
99视频在线观看一区三区|
一本色道a无线码一区v|
欧美日韩午夜影院|
久久综合色一综合色88|
久久久91精品国产一区二区精品|
亚洲国产高清不卡|
一区二区三区国产豹纹内裤在线|
日韩精品国产欧美|
久久99热这里只有精品|
国产·精品毛片|
91视频国产观看|
日韩一区二区在线看|
日韩免费视频一区二区|
中文字幕一区二区三区不卡|
一级特黄大欧美久久久|
美女视频黄久久|
色综合天天做天天爱|
精品国产一区二区三区四区四|
中文字幕欧美一区|
久久97超碰国产精品超碰|
色婷婷综合在线|
欧美精品一区二区在线观看|
亚洲激情一二三区|
国产成人精品亚洲午夜麻豆|
欧美高清视频一二三区|
亚洲欧美色综合|
国产福利精品导航|
91精品国产色综合久久不卡蜜臀
|
日韩精品一区二区三区在线|
√…a在线天堂一区|
精品在线你懂的|
欧美视频一区在线观看|
中文字幕在线一区二区三区|
久久精工是国产品牌吗|
欧美亚洲一区三区|
欧美激情一区二区三区不卡
|
久久精品国产第一区二区三区|
99精品视频免费在线观看|
精品国产亚洲在线|
亚洲成av人片在线|
在线观看亚洲a|
综合久久给合久久狠狠狠97色|
精品一区二区三区影院在线午夜|
欧美精品色综合|
亚洲无人区一区|
欧美体内she精高潮|
亚洲最大的成人av|
色久优优欧美色久优优|
亚洲婷婷国产精品电影人久久|
国产宾馆实践打屁股91|
久久精品欧美一区二区三区不卡|
精品一区二区三区在线视频|
精品日韩欧美一区二区|
麻豆精品新av中文字幕|
日韩欧美在线网站|
美腿丝袜亚洲一区|
精品久久久久久久久久久久久久久
|
久久精品视频网|
国产凹凸在线观看一区二区
|
色综合久久精品|
亚洲色图在线视频|
色婷婷精品久久二区二区蜜臀av
|
婷婷六月综合网|
7777精品伊人久久久大香线蕉经典版下载
|
91精品国产综合久久精品|
五月婷婷激情综合网|
在线成人小视频|
日韩精品欧美精品|
欧美一区二区三区在线|
精品在线播放免费|
欧美精品一区二区三区蜜桃视频|
国产在线日韩欧美|
国产精品久久久久久亚洲伦|
色婷婷精品大视频在线蜜桃视频|
亚洲综合在线第一页|
欧美一区日韩一区|
国产精品66部|
亚洲男人天堂av|
91精品啪在线观看国产60岁|
激情成人综合网|
亚洲欧洲精品一区二区三区|
欧美性生活久久|
精品一区二区三区视频|
最新中文字幕一区二区三区|
欧美亚洲丝袜传媒另类|
狠狠色综合日日|
亚洲女同ⅹxx女同tv|
4hu四虎永久在线影院成人|
国产乱码字幕精品高清av|
亚洲免费成人av|
日韩情涩欧美日韩视频|
99精品在线观看视频|
日韩av网站在线观看|
国产欧美日韩另类视频免费观看|
色香蕉成人二区免费|
久久疯狂做爰流白浆xx|
综合久久一区二区三区|
精品国产乱码久久久久久1区2区
|
91精品福利在线一区二区三区|
国产福利一区二区|
天天综合日日夜夜精品|
中文字幕一区av|
精品国内片67194|
欧美性猛交一区二区三区精品|
国产精品一区久久久久|
香蕉av福利精品导航|
国产精品久久久久久久久快鸭
|
五月婷婷综合网|
综合激情成人伊人|
久久精品欧美日韩精品
|
高清beeg欧美|
久久国产精品72免费观看|
天天爽夜夜爽夜夜爽精品视频|
中文字幕在线观看不卡|
久久婷婷国产综合国色天香|
欧美区视频在线观看|
色国产综合视频|
成人免费看视频|
国产99久久精品|
国产一区二区在线免费观看|
欧美aaa在线|
日本不卡高清视频|
日韩和的一区二区|
五月婷婷激情综合|
丝袜诱惑制服诱惑色一区在线观看|
亚洲欧美色一区|
一区二区三区在线看|
亚洲色图欧洲色图婷婷|
**网站欧美大片在线观看|
国产精品久久久久久久久动漫|
中文字幕av在线一区二区三区|
久久久精品一品道一区|
久久你懂得1024|
欧美激情中文字幕|
国产精品久久久久影院|
国产精品高潮久久久久无|
久久久精品综合|
中文字幕在线观看一区二区|
中文字幕va一区二区三区|
中文字幕在线观看一区|
亚洲色图欧美激情|
亚洲日本青草视频在线怡红院|
国产欧美一区二区三区在线老狼|
国产日韩欧美高清|
国产精品电影院|
亚洲综合在线五月|
蜜芽一区二区三区|
国产一区二区三区免费在线观看|
狠狠色丁香久久婷婷综合丁香|
国产91综合网|
91免费版pro下载短视频|
欧美日韩一级视频|
日韩一卡二卡三卡国产欧美|
日韩一级二级三级|
久久久久国产免费免费|
综合激情网...|
天天av天天翘天天综合网
|
国产精品天天看|
一区二区在线看|
久久国产精品免费|
99久久精品免费看国产|
欧美精品一卡二卡|
国产亚洲精品7777|
亚洲地区一二三色|
福利一区二区在线|
欧美丰满一区二区免费视频
|
欧美日韩精品一区视频|
久久久精品蜜桃|
亚洲一区二区三区免费视频|
久久精品国产亚洲一区二区三区|
成人小视频在线观看|
欧美精品乱人伦久久久久久|
国产欧美va欧美不卡在线|
肉丝袜脚交视频一区二区|
国产二区国产一区在线观看|
欧美三级欧美一级|
欧美国产日韩a欧美在线观看
|
久久视频一区二区|
亚洲成a人片综合在线|
国产成人av电影在线|
欧美美女直播网站|