国产chinesehdxxxx老太婆,办公室玩弄爆乳女秘hd,扒开腿狂躁女人爽出白浆 ,丁香婷婷激情俺也去俺来也,ww国产内射精品后入国产

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C++基礎知識之面向對象篇2

jf_78858299 ? 來源: 阿Q正磚 ? 作者:阿Q ? 2023-03-02 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

13、對象的構造函數(shù)

  • 構造函數(shù)是一種特殊的成員函數(shù)。
  • 構造函數(shù)不需要用戶調用,而是在建立對象時自動執(zhí)行。
  • 構造函數(shù)的名字必須與類名相同,而不能由用戶任意命名。
  • 夠贊函數(shù)的功能是由用戶定義的,用戶根據(jù)初始化的要求設計函數(shù)體和函數(shù)參數(shù)。

14、不同對象執(zhí)行析構函數(shù)的動機

  • 對于函數(shù)中定義的自動局部對象,當函數(shù)被調用結束時,對象釋放,在對象釋放前自動執(zhí)行析構函數(shù)。
  • static局部對象只在main()函數(shù)結束或調用exit函數(shù)結束程序時,調用static局部對象的析構函數(shù)。
  • 對于全局對象,在程序的流程離開其作用域時(如main函數(shù)結束或調用exit函數(shù))時,調用該全局對象的析構函數(shù)。
  • 只要對象的生命周期結束,程序就自動執(zhí)行實現(xiàn)設計好的析構函數(shù)來完成相關工作。

15、派生類的構造函數(shù)和析構函數(shù)

  • 派生類中由基類繼承而來的成員的初始化工作還是由基類的構造函數(shù)完成,派生類中新增的成員在派生類中構造函數(shù)中初始化。
  • 如果基類中沒有不帶參數(shù)的構造函數(shù),那么在派生類的構造函數(shù)中必須調用基類構造函數(shù),以初始化積累成員。
  • 派生類中構造函數(shù)的執(zhí)行程序:
    • 先執(zhí)行基類構造函數(shù),調用順序按照他們被繼承時聲明的順序。
    • 再執(zhí)行內嵌成員對象的構造函數(shù),調用順序按照他們在類中聲明的順序。
    • 最后執(zhí)行派生類構造函數(shù)。
  • 派生類析構函數(shù)的執(zhí)行順序
    • 先執(zhí)行派生類的析構函數(shù)。
    • 再執(zhí)行內嵌成員對象的析構函數(shù),調用順序按照他們在類中聲明的反順序。
    • 再執(zhí)行其基類的析構函數(shù),調用順序按照他們被繼承時聲明的順序。

16、類的封裝

  • 將有關的代碼和數(shù)據(jù)封裝在一個對象中,每個對象間相互獨立,互不干擾。
  • 將對象中的某些部分對外隱蔽,隱蔽內部細節(jié),只留下少量接口。
  • 類具有信息隱藏的能力,能夠有效的把類的內部數(shù)據(jù)隱藏起來,使外部函數(shù)只有只有通過類的公有成員才能訪問類的內部數(shù)據(jù)。
  • 封裝使類成為一個具有內部數(shù)據(jù)的自我隱藏能力,功能獨立的軟件模塊。
  • 類的公有成員也稱為類的接口,外部函數(shù)要訪問類的內部成員,只有通過類的公有成員才能實現(xiàn)。

17、形參帶默認值的函數(shù)

  • 給默認值的時候,從右向左給。
  • 調用效率的問題。
  • 定義出可以給形參默認值,聲明也可以給形參默認值形參給默認值的時候,不管是定義處給,還是聲明處給,形參默認值只能出現(xiàn)一次。

18、智能指針

  1. unique_ptr
    1. 表示互斥權,拷貝構造函數(shù)和拷貝賦值運算符都delete了。
    2. 一個unique_ptr擁有一個對象,在某一時刻,只能由一個unique_ptr指向一個給定的對象。當unique_ptr被銷毀,所致的對象也被銷毀。
    3. unique_ptr不能拷貝,不能賦值,可以移動。
    4. 為動態(tài)分配的內存提供異常安全,unique_ptr可以理解為一個簡單的指針(指向一個對象)或一對指針(包含釋放器deleter的情況)。
    5. 將動態(tài)分配內存的所有權傳遞給函數(shù)。
    6. 從函數(shù)返回動態(tài)分配的內存。
  2. shared_ptr:
    1. shared_ptr表示共享所有權,可以共享一個對象。當兩段代碼都沒有獨享所有權(負責銷毀對象)時,可以使用shared_ptr。shared_ptr是一種計數(shù)指針,當計數(shù)變?yōu)?時釋放所指向的對象。
    2. 其實就是一個指針套上了釋放器,套上了計數(shù)器,拷貝的時候增加了引用,賦值也增加了引用,相應的也會有遞減了引用計數(shù)。
  3. weak_ptr:
    1. 是一種不控制所指向對象生存期的智能指針,指向由一個shared_ptr管理的對象。
    2. weak_ptr,不影響shared_ptr的引用計數(shù)。一旦shared_ptr被銷毀,那么對象也會被銷毀,即使weak_ptr還指向這個對象,這個對象也會被銷毀。
  4. auto_ptr:

c++11 棄用,原因是缺乏語言特性如 “針對構造和賦值” 的 std::move 語義,以及其他瑕疵。

  1. auto_ptr 與 unique_ptr 比較
    1. auto_ptr 可以賦值拷貝,復制拷貝后所有權轉移;unqiue_ptr 無拷貝賦值語義,但實現(xiàn)了move 語義;
    2. auto_ptr 對象不能管理數(shù)組(析構調用 delete),unique_ptr 可以管理數(shù)組(析構調用 delete[] );

19、純虛函數(shù)和虛函數(shù)的區(qū)別

  • 虛函數(shù)和純虛函數(shù)可以定義在同一個類中,含有純虛函數(shù)的類被稱為抽象類,而只含有虛函數(shù)的類不能被稱為抽象類。
  • 虛函數(shù)可以直接被使用,也可以被子類重載以后以多態(tài)的形式調用,而純虛函數(shù)必須在子類中實現(xiàn)該函數(shù)才可以使用,因為純虛函數(shù)在基類只有聲明而沒有定義。
  • 虛函數(shù)和純虛函數(shù)都可以在子類中被重載,以多態(tài)的形式被調用。
  • 虛函數(shù)和純虛函數(shù)通常存在于抽象基類之中,被繼承的子類重載,目的是提供一個統(tǒng)一的接口。
  • 虛函數(shù)和純虛函數(shù)的定義中不能有static標識符,被static修飾的函數(shù)在編譯時候要求前期綁定,然而虛函數(shù)卻是動態(tài)綁定,而且被兩者修飾的函數(shù)聲明周期也不一樣。
  • 虛函數(shù)必須實現(xiàn),如果不實現(xiàn),編譯器將報錯。
  • 虛函數(shù),父類和子類都有各自的版本。由多態(tài)方式調用的時候動態(tài)綁定。
  • 實現(xiàn)了純虛函數(shù)的子類,改純虛函數(shù)在子類中就變成了虛函數(shù),子類的子類可以覆蓋。該虛函數(shù),由多態(tài)方式調用的時候動態(tài)綁定
  • 虛函數(shù)是C++中用于實現(xiàn)多態(tài)的機制。核心理念就是通過基類訪問派生類定義的。
  • 包含純虛函數(shù)的類叫做抽象類(也稱為接口類),抽象類不能實例化處對象。

20、哈希函數(shù)

  • 哈希沖突的產生原因:哈希是通過對數(shù)據(jù)進行再壓縮,提高效率的一種解決方法。但由于通過哈希函數(shù)產生的哈希值是有限的,而數(shù)據(jù)可能比較多,導致經過哈希函數(shù)處理后仍然有不同的數(shù)據(jù)對應相同的值。這時候就產生了哈希沖突。
  • Hash哈希沖突發(fā)生的場景:當關鍵字值域遠大于哈希表的長度,而且事先并不知道關鍵字的具體取值時。hash沖突就會發(fā)生。
  • Hash溢出發(fā)生的場景:當關鍵字的實際取值大于哈希表的長度時,而且表中已裝滿了記錄,如果插入一個新紀錄,不僅發(fā)生沖突,而且還會發(fā)生溢出。

解決哈希沖突的方法主要有:開放地址法和拉鏈法。

  1. 開放地址法:
    1. 線性探測:按順序決定值時,如果數(shù)據(jù)的值已經存在,則在原來值的基礎上往后加一個單位,直至不發(fā)生哈希沖突。
    2. 再平方探測:按順序決定值時,如果某數(shù)據(jù)的值已經存在,則在原來值的基礎上先加1的平方個單位,若仍然存在則減1的平方個單位。隨之是2的平方,3的平方等。直至不發(fā)生哈希沖突。
    3. 偽隨機探測:按順序決定值時,如果某數(shù)據(jù)已經存在,通過隨機函數(shù)隨機生成一個數(shù),在原來值得基礎上加上隨機數(shù),直至不發(fā)生哈希沖突。
  2. 鏈式地址法:

對于相同的值,使用鏈表進行連接。使用數(shù)組存儲每一個鏈表

  1. 優(yōu)點:
    1. 拉鏈法處理沖突簡單,且無堆積現(xiàn)象,即非同義詞絕不會發(fā)生沖突,因此平均查找長度較短。
    2. 由于拉鏈中個鏈表的節(jié)點空間時動態(tài)申請的,故它更適合于造表前無法確定表長的情況。
    3. 開放定址法為減少沖突,要求裝填因子較小,故當節(jié)點規(guī)模較大時會浪費很多空間。而拉鏈法中可取a>=1,且節(jié)點較大時,拉鏈法中增加的指針域可忽略不計,因此節(jié)省空間。
    4. 再用拉鏈法構造的散列表中,刪除節(jié)點的操作易于實現(xiàn),只要簡單地山區(qū)鏈表上相應的節(jié)點即可。
  2. 缺點:
    1. 指針占用較大空間時,會造成空間浪費,若空間用于增大散列表規(guī)模進而提高開放地址法的效率。
    2. 建立公共溢出區(qū)存儲所有哈希沖突的數(shù)據(jù)。
    3. 對于沖突的哈希值再次進行哈希處理,直至沒有哈希沖突。

21、C++強制轉換

  1. static_cast
  • static_cast 用于進行比較“自然”和低風險的轉換,如整型和浮點型、字符型之間的互相轉換。另外,如果對象所屬的類重載了強制類型轉換運算符 T(如 T 是 int、int* 或其他類型名),則 static_cast 也能用來進行對象到 T 類型的轉換。
  • static_cast 不能用于在不同類型的指針之間互相轉換,也不能用于整型和指針之間的互相轉換,當然也不能用于不同類型的引用之間的轉換。因為這些屬于風險比較高的轉換。
  1. reinterpret_cast

reinterpret_cast 用于進行各種不同類型的指針之間、不同類型的引用之間以及指針和能容納指針的整數(shù)類型之間的轉換。轉換時,執(zhí)行的是逐個比特復制的操作。

  1. const_cast

const_cast 運算符僅用于進行去除 const 屬性的轉換,它也是四個強制類型轉換運算符中唯一能夠去除 const 屬性的運算符。

  1. dynamic_cast

用 reinterpret_cast 可以將多態(tài)基類(包含虛函數(shù)的基類)的指針強制轉換為派生類的指針,但是這種轉換不檢查安全性,即不檢查轉換后的指針是否確實指向一個派生類對象。dynamic_cast專門用于將多態(tài)基類的指針或引用強制轉換為派生類的指針或引用,而且能夠檢查轉換的安全性。對于不安全的指針轉換,轉換結果返回 NULL 指針。

22、構造函數(shù)為什么不能是虛函數(shù)

虛函數(shù)對應一個虛指針,虛指針其實是存儲在對象的內存空間的。如果構造函數(shù)是虛函數(shù),就需要通過虛函數(shù)表中對應的虛函數(shù)指針(編譯期間生成屬于類)來調用,可對象目前還沒有實例化,也即是還沒有內存空間,何來的虛指針,所以構造函數(shù)不能是虛函數(shù)。

虛函數(shù)的作用在于通過父類的指針或者引用來調用它的成員函數(shù)的時候,能夠根據(jù)動態(tài)類型來調用子類相應的成員函數(shù)。而構造函數(shù)是在創(chuàng)建對象時自動調用的,不可能通過父類的指針或者引用去調用,所以構造函數(shù)不能是虛函數(shù)。

23、虛函數(shù)可以是內聯(lián)函數(shù)嗎

  • 虛函數(shù)可以是內聯(lián)函數(shù),內聯(lián)是可以修飾虛函數(shù)的,但是當虛函數(shù)表現(xiàn)多態(tài)性的時候不能內聯(lián)。
  • 內聯(lián)是在編譯期建議編譯器內聯(lián),而虛函數(shù)的多態(tài)性在運行期,編譯器無法知道運行期調用哪個代碼,因此虛函數(shù)表現(xiàn)為多態(tài)性時(運行期)不可以內聯(lián)。
  • inline virtual 唯一可以內聯(lián)的時候是:編譯器知道所調用的對象是哪個類(如 Base::who()),這只有在編譯器具有實際對象而不是對象的指針或引用時才會發(fā)生。

24、strcat、strcpy、strcmp區(qū)別

  1. strcat函數(shù)原型char* strcat(char* dest,const char* src);

    進行字符串的拼接,將第二個字符串連接到第一個字符串中第一個出現(xiàn)\\0開始的地方。返回的是拼接后字符的首地址。并不檢查第一個數(shù)組的大小是否可以容納第二個字符串。如果第一個數(shù)組的已分配的內存不夠容納第二個字符串,則多出來的字符將會溢出到相鄰的內存單元。

  2. strncat函數(shù)原型:strncat(dest,src,maxsize)

    功能跟strcat一致,不過它帶有一個maxsize的參數(shù),設置容納的最大的字符長度。如在遇到\\0之前達到了最大字符長度,則會只連接最大字符長度個數(shù)的字符。

  3. *strcpy函數(shù)原型 char strcpy(char dest,const char src);

    將第二個字符串\\0之前的字符復制到第一個內存地址內。返回的是復制后的字符串的首地址。有char*返回值是為了函數(shù)能夠支持鏈式表達式,增加了函數(shù)的“附加值”。char a[7]="abcdef",char b[5]="xyz";
    strcpy(a,b)函數(shù) 當將后面的數(shù)組賦值給前面那個時侯 除去五個元素后,從下標為5開始的元素仍舊是之前a[5]的元素。

  4. strncpy(str1,str2,numbe)

是將str2中的前number個字符賦給str1,或是將\\0之前的字符賦給str1.

  1. **strcmp函數(shù)原型 **int strcmp(const char src1,const char src2);

    進行兩個字符串中從第一個開始的ASCII碼的比較 。遇到\\0或者不一致時退出,如果前者大于后者返回1,小于返回-1 如果在兩個中的任何一個的\\0之前都保持一致,則返回0. 當src或src遇到\\0時即停止比較.strcmp比較的是字符串,不是字符,字符之間的比較可以直接用==

  2. strncmp(str1,str2,numbe)

函數(shù)在strcmp的基礎上多了一個int參數(shù),即指定比較前幾個字符是否相等。

25、虛函數(shù)和靜態(tài)函數(shù)的區(qū)別

靜態(tài)函數(shù)在編譯時就已經確定,而虛函數(shù)在運行時動態(tài)綁定。虛函數(shù)是實現(xiàn)多態(tài)重要手段,在函數(shù)前加virtual關鍵字即可。

26、靜態(tài)函數(shù)與靜態(tài)變量的區(qū)別

  1. 類靜態(tài)數(shù)據(jù)成員在編譯時創(chuàng)建并初始化:在該類的任何對象建立之前就存在,不屬于任何對象,而非靜態(tài)類成員變量則是屬于對象所有的。類靜態(tài)數(shù)據(jù)成員只有一個拷貝,為所有此類的對象所共享。
  2. 類靜態(tài)成員函數(shù)屬于整個類,不屬于某個對象,由該類所有對象共享。
    1. static 成員變量實現(xiàn)了同類對象間信息共享。
    2. static 成員類外存儲,求類大小,并不包含在內。
    3. static 成員是命名空間屬于類的全局變量,存儲在 data 區(qū)的rw段。
    4. static 成員只能類外初始化。
    5. 可以通過類名訪問(無對象生成時亦可),也可以通過對象訪問。

27、public、protected、private區(qū)別

  • public: 可以被該類中的函數(shù)、子類的函數(shù)、其友元函數(shù)訪問,也可以由該類的對象訪問。
  • protected: 可以被該類中的函數(shù)、子類的函數(shù)、以及其友元函數(shù)訪問,但不能被該類的對象訪問。
  • private: 只能由該類中的函數(shù)、其友元函數(shù)訪問,不能被任何其他訪問,該類的對象也不能訪問。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C++
    C++
    +關注

    關注

    22

    文章

    2119

    瀏覽量

    75269
  • STL
    STL
    +關注

    關注

    0

    文章

    86

    瀏覽量

    18810
  • 面向對象
    +關注

    關注

    0

    文章

    64

    瀏覽量

    10118
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Labview 之面向對象編程。 里面有個例子 和視頻教程地址

    Labview 之面向對象編程。 里面有個例子 和視頻教程地址Labview 之面向對象編程。 里面有個例子 和視頻教程地址
    發(fā)表于 12-29 10:16

    C++ 面向對象多線程編程下載

    C++ 面向對象多線程編程下載
    發(fā)表于 04-08 02:14 ?70次下載

    C++語言基礎知識講解

    C++語言基礎知識講解,喜歡的朋友可以下載來學習。
    發(fā)表于 01-14 15:30 ?22次下載

    面向對象的程序設計(C++

    面向對象的程序設計(C++).面向對象的基本思想 C++
    發(fā)表于 03-22 14:40 ?0次下載

    C#入門教程之面向對象編程簡介的詳細資料概述

    本文檔的主要內容詳細介紹的是C#入門教程之面向對象編程簡介的詳細資料概述主要學習的目標是1.面向對象編程,
    發(fā)表于 12-05 11:54 ?35次下載
    <b class='flag-5'>C</b>#入門教程<b class='flag-5'>之面向</b><b class='flag-5'>對象</b>編程簡介的詳細資料概述

    Visual C++教程之C++基礎知識介紹

    本文檔的主要內容詳細介紹的是Visual C++教程之C++基礎知識介紹主要內容包括了:1 類和對象,2 類的成員及特性,3 繼承和派生類
    發(fā)表于 02-15 15:59 ?9次下載
    Visual <b class='flag-5'>C++</b>教程之<b class='flag-5'>C++</b>的<b class='flag-5'>基礎知識</b>介紹

    C++語言和面向對象程序設計教程

    C++語言和面向對象程序設計代表了旨在使計算機問題解更加符合人的思維活動,是軟件開發(fā)方法的一場革命;面向對象建模和
    發(fā)表于 03-02 08:00 ?6次下載

    C/C++基礎知識匯總

    這是一五萬字的C/C++知識點總結,包括答案。
    的頭像 發(fā)表于 06-12 15:10 ?2822次閱讀

    C++基礎知識

    C++基礎知識
    的頭像 發(fā)表于 01-12 11:00 ?1650次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>基礎知識</b>

    C++基礎知識之面向對象1

    這兩期講完基本上面試遇到的相關問題就過了一半了,后續(xù)將STL和內存相關的補充完整,C++這塊的基本上就全部結束了,以后可能再也不會像現(xiàn)在這樣在這個方向投入過多時間,且行且珍惜啊,還是跟以前一樣,所有的總結都會有PDF版,如有需要自取。廢話不多說,發(fā)完這期,繼續(xù)整理STL去了。
    的頭像 發(fā)表于 03-02 09:49 ?552次閱讀

    C/C++之面向對象編程思想1

    C++作為一門在C和Java之間的語言,其既可以使用C語言中的高效指針,又繼承了Java中的面向對象編程思想,在去年編程語言排行榜上更是首次
    的頭像 發(fā)表于 03-30 15:14 ?871次閱讀
    <b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>之面向</b><b class='flag-5'>對象</b>編程思想1

    C/C++之面向對象編程思想2

    C++作為一門在C和Java之間的語言,其既可以使用C語言中的高效指針,又繼承了Java中的面向對象編程思想,在去年編程語言排行榜上更是首次
    的頭像 發(fā)表于 03-30 15:14 ?795次閱讀
    <b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>之面向</b><b class='flag-5'>對象</b>編程思想<b class='flag-5'>2</b>

    C/C++之面向對象編程思想3

    C++作為一門在C和Java之間的語言,其既可以使用C語言中的高效指針,又繼承了Java中的面向對象編程思想,在去年編程語言排行榜上更是首次
    的頭像 發(fā)表于 03-30 15:16 ?803次閱讀
    <b class='flag-5'>C</b>/<b class='flag-5'>C++</b><b class='flag-5'>之面向</b><b class='flag-5'>對象</b>編程思想3

    PyTorch教程3.2之面向對象的設計實現(xiàn)

    電子發(fā)燒友網站提供《PyTorch教程3.2之面向對象的設計實現(xiàn).pdf》資料免費下載
    發(fā)表于 06-05 15:48 ?0次下載
    PyTorch教程3.2<b class='flag-5'>之面向</b><b class='flag-5'>對象</b>的設計實現(xiàn)

    C++語言基礎知識

    電子發(fā)燒友網站提供《C++語言基礎知識.pdf》資料免費下載
    發(fā)表于 07-19 10:58 ?10次下載