亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++類中需要注意的地方

2019-11-08 02:03:27
字體:
來源:轉載
供稿:網友

Talk is cheap, show me the code.

類的靜態成員函數不允許聲明為const,否則編譯會報錯。當類的非靜態成員函數被聲明為const, 表明這個非靜態成員函數隱含傳入的this指針為const指針,即指針指向的對象為常量, 在函數內部不允許對類的成員變量進行賦值,否則會報錯,并且在類外部實現該非靜態成員函數時也需要加上const聲明,否則編譯也會報錯。

類class不加修飾符時默認是PRivate的,結構體struct不加修飾符默認是public的。

關于const和非const變量或對象之間是否能直接賦值的問題。const和非const變量之間時可以直接相互賦值的,因為賦值只是將變量值進行一次拷貝,但是如果是指針變量的話就需要注意: 不能將const char*變量賦值給char*,雖然賦值的只是對象地址,但是可能會導致指針指向的對象值的改變;可以將char* const 變量賦值給char*,因為char* const是指向變量的常量指針,賦值只是將指針地址進行拷貝,作用等同于將const int 賦值給int。

std中定義的pair的使用方法:pair是定義在標準庫中的一個結構體,有兩個成員變量first和second,是對兩種類型的一個簡單封裝,構建pair的方式有兩種,一種是直接使用構造函數:

pair<string, int> p1("lee", 2);

另一種是采用標準庫中定義的函數make_pair:

pair<string, int> p2 = make_pair("www", 3);

構造函數不可以聲明為const;構造函數可以使用初始化列表進行成員變量初始化: Constructor():member1(val1), member2(val2){};初始化列表中變量初始化的順序只和類成員變量定義的次序有關,和初始化列表中出現的次序無關。

對于沒有構造函數的類類型成員,const成員或引用類型成員, 必須在構造函數的初始化列表中進行初始化,在構造函數體內進行賦值初始化是無效的。

int i = 1; const int i1 = i; int &i2 = i; 這些都是正確的,但是為什么在構造函數中不能通過在函數體內賦值進行初始化,而必須在初始化列表中初始化呢?這是因為構造函數執行時分兩個階段,一個階段是進行初始化階段,初始化列表就是在初始化階段執行的;另一個階段是普通的計算階段,當進入構造函數體內時其實初始化階段已經結束,進入了普通計算階段。如果只是通過在函數體內對const或引用類型成員賦值,這些成員其實在初始化階段已經被默認初始化成了不確定的值,這里再進行賦值就會出錯,編譯不通過。

explicit關鍵字只用于類的內部用來修飾構造函數的聲明,構造函數如果再類外部定義無需加上explicit關鍵詞,否則會報錯。explicit關鍵字的作用是不允許隱式轉換。

對于非浮點型數據類型可以直接類內部初始化靜態常量,但是浮點型就不能直接在類內部初始化靜態常量。靜態變量都不可以在類內部進行初始化。

class Test1 { public: static int a = 1; //error static const int b = 1; //right static const double c = 1.2; //error }; int Test1::a = 1; //right int Test1::c = 1.2; //right

一般來說,最好顯示或隱式定義默認構造函數和復制構造函數。只有不存在其他構造函數時才合成默認構造函數。如果定義了復制構造函數,也必須定義默認構造函數。沒有復制構造函數將會嚴重限制類的使用,對象只能采用引用的方式作為函數參數或者返回類型,并且不能作為容器的元素。 對于帶有指針類型的類尤其需要注意,需要自己定義復制構造函數,因為編譯器自動合成的復制構造函數將會是賦值指針,而不是賦值指針指向的對象。復制構造函數的形參通產都是const引用類型的,引用類型是必須的,const不一定是必須,但是最好帶上。

通常需要自己定義析構函數,那么也需要自己定義復制構造函數和重載賦值操作符,這被稱為復制控制三原則。編譯器自動合成的析構函數不會自動釋放指針資源,必須自己手動刪除。析構函數中撤銷數組資源時會逐個撤銷數組中每個元素資源,并且是按照從后往前逆序撤銷。

類中涉及到動態分配資源或者涉及到指針,一般都是需要自己定義復制控制函數(復制構造函數,重載賦值操作符,析構函數)的,因為動態分配的資源析構函數不會自動回收,包含指針時默認合成的復制構造函數和賦值操作符都是只復制指針值,而沒有復制指針指向的對象,這樣容易出現垂懸指針。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久久久久久大神国产| 久久成人这里只有精品| 在线精品高清中文字幕| 日韩免费观看视频| 欧美国产日韩中文字幕在线| 久久全球大尺度高清视频| 久久国产精品久久久久| 人人爽久久涩噜噜噜网站| 伦伦影院午夜日韩欧美限制| 亚洲天堂av网| 欧美成人激情在线| 亚洲午夜av久久乱码| 亚洲影院高清在线| 岛国视频午夜一区免费在线观看| 夜夜嗨av一区二区三区四区| 欧洲一区二区视频| 欧美成年人网站| 亚洲欧美制服综合另类| 成人黄色免费网站在线观看| 欧美视频在线免费| 一区二区三区四区视频| 在线播放日韩精品| 91精品视频免费观看| 国产视频综合在线| 国产午夜精品美女视频明星a级| 成人免费直播live| 成人午夜激情免费视频| 91欧美精品午夜性色福利在线| 日韩黄色在线免费观看| 国外日韩电影在线观看| 欧美激情按摩在线| 久久综合伊人77777| 色悠久久久久综合先锋影音下载| 久久精品亚洲精品| 午夜精品一区二区三区在线播放| 国产精品稀缺呦系列在线| 欧洲s码亚洲m码精品一区| 欧美日韩亚洲精品一区二区三区| 精品爽片免费看久久| 日韩欧美在线看| 不卡在线观看电视剧完整版| 亚洲国产精品专区久久| 最近2019年日本中文免费字幕| 久久亚洲影音av资源网| 中文字幕日韩精品有码视频| 亚洲欧洲xxxx| 青青草国产精品一区二区| 中文字幕精品视频| 午夜欧美不卡精品aaaaa| 欧美与欧洲交xxxx免费观看| 国产精品18久久久久久首页狼| 亚洲乱码国产乱码精品精天堂| 欧美激情视频三区| 成人a在线视频| 国产精品高潮呻吟久久av无限| 欧美电影电视剧在线观看| 日韩三级成人av网| 中文字幕在线观看日韩| 久久视频在线看| 永久免费看mv网站入口亚洲| 日韩在线高清视频| 国产精品第3页| 91sa在线看| 中文字幕日韩av综合精品| 欧美电影院免费观看| 国产精品永久免费观看| 欧美午夜丰满在线18影院| 日韩小视频在线| 亚洲毛片一区二区| 久久久精品国产网站| 91精品国产91久久久久久不卡| 超碰97人人做人人爱少妇| 国语自产精品视频在免费| 国产精品久久国产精品99gif| 亚洲免费高清视频| 久久777国产线看观看精品| 欧美多人乱p欧美4p久久| 日韩在线免费视频观看| 国产综合视频在线观看| 亚洲成人精品视频在线观看| 国产精品极品尤物在线观看| 亚洲精品久久久久久久久| 国产黑人绿帽在线第一区| 日韩精品免费在线视频| 一区二区三区亚洲| 久久久亚洲欧洲日产国码aⅴ| 91精品国产91久久久久| 午夜精品福利电影| 欧美裸体男粗大视频在线观看| 国产精品久久久久99| 亚洲精品suv精品一区二区| 欧美日韩一区二区在线| 欧美日韩成人免费| 米奇精品一区二区三区在线观看| 亚洲精品美女久久| 国产精品aaaa| 色悠久久久久综合先锋影音下载| 亚洲国产精彩中文乱码av在线播放| 激情成人在线视频| 亚洲第一男人av| 91在线精品视频| 55夜色66夜色国产精品视频| 欧美一区二三区| 欧美成人激情视频免费观看| 欧美激情videoshd| 国内精品在线一区| 欧美一级片在线播放| 欧美另类极品videosbest最新版本| 91久热免费在线视频| 国产美女久久久| 欧美成人手机在线| 中文字幕欧美日韩精品| 亚洲欧美激情四射在线日| 日韩欧美一区视频| 久久最新资源网| 91精品国产一区| 色综合影院在线| 国产午夜精品久久久| 日韩高清电影好看的电视剧电影| 久久久久久伊人| 4438全国亚洲精品在线观看视频| 伊人伊成久久人综合网小说| 自拍偷拍亚洲区| 永久免费精品影视网站| 国产伦精品一区二区三区精品视频| 成人夜晚看av| 国产精品综合久久久| 日本国产高清不卡| 欧美一区二区三区免费视| 国产欧美日韩免费看aⅴ视频| 庆余年2免费日韩剧观看大牛| 成人av在线天堂| 欧美中文字幕精品| 蜜月aⅴ免费一区二区三区| 日韩电影网在线| 国产精品视频网| 国产精品午夜国产小视频| 日本视频久久久| 97在线精品国自产拍中文| 亚洲a中文字幕| 国产精品高潮视频| 欧美另类老女人| 国产精品午夜国产小视频| 国产精品一久久香蕉国产线看观看| 精品国产福利在线| 国产一区欧美二区三区| 91av在线播放视频| 日韩女优人人人人射在线视频| 国产丝袜一区二区| 国产精品日韩专区| 欧美日韩国产中字| 亚洲精品视频免费在线观看| 欧美激情网站在线观看| 亚洲视频在线观看免费| 久久久久久av| 中文字幕在线观看日韩| 九九久久综合网站| 国产综合在线视频| 欧美日韩亚洲91| 91国产美女在线观看| 成人精品aaaa网站| 成人亚洲综合色就1024| 激情亚洲一区二区三区四区| 日韩免费在线电影|