explicit關鍵字&&static成員

      網友投稿 791 2025-04-01

      大家好,我是芒果,一名非科班的在校大學生。對C/C++、數據結構、Linux及MySql、算法等領域感興趣,喜歡將所學知識寫成博客記錄下來。 希望該文章對你有所幫助!如果有錯誤請大佬們指正!共同學習交流


      掘金LV3用戶 https://juejin.cn/user/1381426159953960

      阿里云社區專家博主,星級博主,技術博主 https://developer.aliyun.com/profile/expert/5lkdbuggiiuhc

      華為云云享專家 https://bbs.huaweicloud.com/community/myhomepage

      1.3 explicit關鍵字

      構造函數不僅可以構造與初始化對象,對于單個參數的構造函數,還具有類型轉換的作用。

      class Date { public: Date(int year) :_year(year) { cout << "Date(int yaer)" << endl; } Date(const Date& d) { _year = d._year; } //Date(int year) // :_year(year) //{} private: int _year; int _month; int _day; }; void TestDate() { Date d1(2018); // 用一個整形變量給日期類型對象賦值 Date d2 = 2019;//隱式類型轉換 } int main() { TestDate(); }

      本來日期類和整形沒有任何關系,但是支持單參數的構造函數之后,整形就可以構造一個日期類的對象

      int main() { //雖然它們都是直接構造,但是過程不一樣 Date d1(2022); Date d2 = 2022;//隱式類型轉化 //這里是用2022構造一個臨時對象Date(2022),再用這個對象拷貝構造d2, //但是C++編譯器會在連續的一個過程中,多個構造會被優化,合二為一 //所以這里被優化為直接就是一個構造 //隱式類型轉化 - 相近類型 - 表示意義相似的類型 double d = 1.1; int i = d; const int& x = d; //不同類型的引用要加const //強制類型轉化 - 無關類型 int* p = &i int j = (int)p; }

      上述代碼可讀性不是很好,用explicit修飾構造函數,將會禁止單參構造函數的隱式轉換。

      explicit Date(int year) :_year(year) {}

      2.static成員

      2.1 概念

      聲明為static的類成員稱為類的靜態成員,用static修飾的成員變量,稱之為靜態成員變量;用static修飾的 成員函數,稱之為靜態成員函數。靜態的成員變量一定要在類外進行初始化

      面試題:實現一個類,計算中程序中創建出了多少個類對象。

      class A { public: //構造函數 A() {++_scount;} //拷貝構造函數 A(const A& t) {++_scount;} //提供函數接口獲取數值 //靜態成員函數 static int GetACount() { return _scount;} private: static int _scount;//靜態成員變量 }; //靜態成員變量要在類外面初始化 int A::_scount = 0; void TestA() { cout<

      靜態成員變量屬于整個類,所有對象,生命周期在整個程序運行期間

      在類外面的訪問方式:前提:_scount是公有的

      cout << A::_scount<

      _scount是私有的 ->提供成員函數

      靜態成員函數:沒有this指針,只能訪問靜態成員變量

      static int GetACount() { return _scount;}

      特性

      靜態成員為所有類對象所共享,不屬于某個具體的實例

      靜態成員變量必須在類外定義,定義時不添加static關鍵字

      類靜態成員即可用類::靜態成員或者對象.靜態成員來訪問

      靜態成員函數沒有隱藏的this指針,不能訪問任何非靜態成員

      explicit關鍵字&&static成員

      靜態成員和類的普通成員一樣,也有public、protected、private3種訪問級別,也可以具有返回值

      靜態成員函數可以調用非靜態成員函數嗎? ->不可以,因為靜態成員函數沒有this指針!

      非靜態成員函數可以調用類的靜態成員函數嗎? ->可以

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:wps2019表格數據怎么快速生成工資條?
      下一篇:excel sumifs函數公式如何使用(excel下拉數字遞增怎么設置)
      相關文章
      亚洲熟妇中文字幕五十中出| 国产亚洲午夜精品| 在线91精品亚洲网站精品成人| 亚洲综合久久精品无码色欲| 亚洲美女中文字幕| 自拍偷自拍亚洲精品情侣| 久久亚洲中文字幕精品一区四 | 大胆亚洲人体视频| 亚洲AV永久无码天堂影院 | 久久亚洲精品无码| 久久久无码精品亚洲日韩蜜桃| 亚洲精品高清无码视频| 亚洲AV中文无码乱人伦下载 | 久久精品国产亚洲AV麻豆王友容| 亚洲va久久久噜噜噜久久天堂| 日本亚洲成高清一区二区三区| 亚洲成a人无码亚洲成www牛牛 | 久久亚洲国产视频| 亚洲一区二区三区日本久久九| 亚洲乱码一区二区三区在线观看 | 亚洲精品无码Av人在线观看国产| 国产亚洲精品福利在线无卡一| 亚洲乱码一区二区三区在线观看| 亚洲AV无码成人精品区天堂| 亚洲av成人无码久久精品 | 亚洲av中文无码| 国产亚洲AV手机在线观看| 亚洲成a人片在线观看无码专区| 亚洲av中文无码乱人伦在线播放| 久久国产亚洲精品无码| 亚洲产国偷V产偷V自拍色戒| 亚洲av片劲爆在线观看| 亚洲春黄在线观看| 亚洲一线产品二线产品| 性色av极品无码专区亚洲| 国产成人亚洲综合无码| 久久精品亚洲中文字幕无码网站| 亚洲综合综合在线| 亚洲国产系列一区二区三区| 亚洲自偷自偷在线成人网站传媒| 色婷婷六月亚洲综合香蕉|