成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

我對面向?qū)ο缶幊痰囊恍├斫?創(chuàng)新互聯(lián)

文章目錄
    • 1. 面向?qū)ο缶幊痰闹鲗栴}
    • 2. 訪問指定符
    • 3. const
    • 4. 類的靜態(tài)數(shù)據(jù)成員
    • 5. 類的操作
    • 6. 運算符重載
    • 7. 繼承
    • 8. 虛函數(shù)和多態(tài)
    • 9. 輸入輸出操作
    • 10. 標準模板庫 STL

網(wǎng)站制作、成都網(wǎng)站建設(shè)服務團隊是一支充滿著熱情的團隊,執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標準與要求,同時竭誠為客戶提供服務是我們的理念。創(chuàng)新互聯(lián)公司把每個網(wǎng)站當做一個產(chǎn)品來開發(fā),精雕細琢,追求一名工匠心中的細致,我們更用心!
1. 面向?qū)ο缶幊痰闹鲗栴}
  • C++三大特性
    • 封裝、繼承、多態(tài)。
    • 封裝:目的是實現(xiàn)代碼模塊化。
    • 繼承:目的是實現(xiàn)代碼擴展。
    • 多態(tài):目的是分為靜態(tài)多態(tài)和動態(tài)多態(tài)。
  • 什么是程序?
    • what: 一段編譯器能聽懂的指令
    • input ---->process —>output
    • why: 自然語言有歧義,用于計算機運算效率不高
    • how: 根據(jù)問題,構(gòu)建數(shù)據(jù)類型+算法---------------如何寫好代碼?
  • 什么是按值傳遞
    • 傳遞的是值的拷貝,也就是說傳遞后就互不相關(guān)了
    • 如何取消按值傳遞:引用傳遞,其實傳遞的為引用的地址,也就是變量所對應的內(nèi)存空間的地址。
  • 什么是對象?
    • 對象是數(shù)據(jù)類型的一個實例
    • 每個實例都是類的一個對象
  • 什么是面向?qū)ο缶幊蹋?ul>
  • 是一種編程模式,將需用到的數(shù)據(jù)類型、方法定義為類,涉及數(shù)據(jù)封裝、繼承、多態(tài)等
  • 本質(zhì):抽象出問題涉及的對象,設(shè)計一組抽象的類型,建模
  • 結(jié)構(gòu)類型是一種新的數(shù)據(jù)類型
  • 數(shù)據(jù)隱藏:對象的屬性應該在合理范圍內(nèi),不允許直接訪問,可通過成員函數(shù)間接訪問
  • 如何使用面向?qū)ο缶幊蹋?ol>
  • 定義與問題相關(guān)的實體類型,根據(jù)問題解決方案確定每個類型的特性和操作。即抽象出類和方法的聲明
  • 編寫類定義,對這些類型編碼。即實現(xiàn)方法
  • 根據(jù)對象,使用直接利用這些對象的操作編寫解決問題的方案。即串聯(lián)方案,解決問題
  • 什么是類?
    • 類是一種自己定義,用于描述對象,滿足應用程序需求的數(shù)據(jù)類型,定義類用class,內(nèi)聚某個問題所需的數(shù)據(jù)類型
    • 類成員默認私有,可用訪問指定符劃定類成員顯示區(qū)域:public、protected、private
    • 類對象的大小一般是所有數(shù)據(jù)成員的大小總和,不包括靜態(tài)數(shù)據(jù)成員的size
  • 什么是封裝?
    • 封裝就是用一個結(jié)構(gòu)類型來描述對象屬性和對象操作
  • 什么是繼承?
    • 繼承是一個類可以獲得另一個類的特性的機制
    • 繼承是一種代碼重用的形式,允許程序員基于現(xiàn)有類開發(fā)新類。現(xiàn)有類通常稱為"基類"或"超類",新類通常稱為"類"或"派生類"。
    • 繼承的好處:繼承大的好處是代碼的重用,與它同樣重要的是它帶來了多態(tài)(繼承是實現(xiàn)多態(tài)的基礎(chǔ))
  • 什么是多態(tài)?
    • 不同時刻有不同形態(tài),使用指針或引用調(diào)用對象成員函數(shù)。編譯時未確定,執(zhí)行時決定指向哪個成員函數(shù)
    • 多態(tài)性好處:設(shè)計與編譯時不能確認處理哪種類型的對象,只能在運行時確定(取決于用戶的輸入類型),而多態(tài)性可以滿足這種需求,一般用于交互式應用程序
  • 什么是構(gòu)造函數(shù)?
    • 所謂構(gòu)造函數(shù),就是與類同名的函數(shù),它與普通函數(shù)的區(qū)別在于,它沒有返回類型,也不會返回 void。
    • 構(gòu)造函數(shù)的作用:創(chuàng)建類對象時,為類成員賦初值與驗證初值
    • 如果類中定義了構(gòu)造函數(shù),則不能用初始化列表類初始化對象
    • 默認構(gòu)造函數(shù),調(diào)用不指定參數(shù)列表,不用括號
  • 什么是析構(gòu)函數(shù)?
    • 類的析構(gòu)函數(shù)是類的一種特殊的成員函數(shù),它會在每次刪除所創(chuàng)建的對象時執(zhí)行。
    • 析構(gòu)函數(shù)的名稱與類的名稱是完全相同的,只是在前面加了個波浪號(~)作為前綴,它不會返回任何值,也不能帶有任何參數(shù)。
    • 析構(gòu)函數(shù)有助于在跳出程序(比如關(guān)閉文件、釋放內(nèi)存等)前釋放資源。
    • 對象的釋放順序與創(chuàng)建它們的順序相反,像棧一樣,先進后出。
  • 什么是副本?
    • 拷貝機制,編譯器會對所有入?yún)⒅谱髋R時副本
    • 函數(shù)內(nèi)對入?yún)⒌牟僮骶鶠閷Ω北镜牟僮?/li>
    • 函數(shù)的參數(shù),會對數(shù)組傳地址,不會有副本機制,為了節(jié)約內(nèi)存,數(shù)組傳遞的是指針
    • 函數(shù)返回值有副本機制,返回的時候,另外再保存一份,當獲取到返回值后,原來內(nèi)存的數(shù)據(jù)就被銷毀了
  • 什么是副本構(gòu)造函數(shù)?
    • 一種特殊的構(gòu)造函數(shù),參數(shù)為類對象。用一個已創(chuàng)建的對象來初始化同類的另外一個對象,即對象copy
    • 創(chuàng)建對象時,不用顯示調(diào)用副本構(gòu)造函數(shù),只需將對象作為入?yún)魅霕?gòu)造函數(shù),編譯器則會調(diào)用副本構(gòu)造函數(shù),創(chuàng)建對象副本。但只針對簡單類
    • 入?yún)⒈仨殲橐?,否則會遞歸call構(gòu)造函數(shù)
    • 入?yún)⒈仨氂胏onst修飾,因為副本構(gòu)造函數(shù)僅創(chuàng)建副本,不修改原對象
    • 缺點:兩個對象的指針數(shù)據(jù)成員指向了同一塊內(nèi)存空間,可通過自已定義副本構(gòu)造函數(shù)解決
    • 如何禁止副本構(gòu)造函數(shù):聲明為private,可以不實現(xiàn)
  • 什么是內(nèi)聯(lián)函數(shù)?
    • 類內(nèi)定義的函數(shù)均為inline函數(shù)
    • 函數(shù)聲明在類內(nèi),但定義在類外的函數(shù),看是否有inline修飾
    • 一般函數(shù)的代碼段只有一份,放在內(nèi)存中的某個位置上,當程序調(diào)用它是,指令就跳轉(zhuǎn)過來;當下一次程序調(diào)用它是,指令又跳轉(zhuǎn)過來;而內(nèi)聯(lián)函數(shù)是程序中調(diào)用幾次內(nèi)聯(lián)函數(shù),內(nèi)聯(lián)函數(shù)的代碼就會復制幾份放在對應的位置上
    • 內(nèi)聯(lián)函數(shù)的定義包含在.h頭文件中,只有不是內(nèi)聯(lián)函數(shù)的定義才應放在.cpp文件中
  • 什么是隱式類型轉(zhuǎn)換?
    • 隱式類型轉(zhuǎn)換即偷偷把給定的類型轉(zhuǎn)換為另外一種類型,不用顯示強轉(zhuǎn)。
    • 對于類構(gòu)造函數(shù)只有一個參數(shù)或只有一個無默認值入?yún)ⅲ由蟚xplicit表示顯示轉(zhuǎn)換,則可避免隱式轉(zhuǎn)換
  • 什么是友元?
    • 在類定義中用friend聲明友元函數(shù)、友元類
    • 友元關(guān)系不能傳遞、不能反向
    • 類外部的函數(shù)被指定為友元,則外部函數(shù)與類內(nèi)部成員無異,可隨意訪問類內(nèi)所有數(shù)據(jù)成員、成員函數(shù)
  • 什么是this指針?
    • 指向類實例對象地址的指針變量
    • 返回類實例對象地址是需顯示使用this指針變量
  • 什么是引用?
    • 引用即一個變量的別名,與目標變量占用同一片內(nèi)存
    • 引用即指針常量,指向的地址不改變
    • 引用聲明時必須初始化,初始化后不能修改值
    • 寫法:數(shù)據(jù)類型 &引用名 = 目標變量名;
    • 數(shù)組不能引用,可以對數(shù)組單個變量進行引用
  • 鏈表相對數(shù)組的優(yōu)勢?
    • 鏈表長度不固定
    • 鏈表可隨意節(jié)點增刪
  • 2. 訪問指定符
    • 兩個方面:類成員的訪問指定符、基類訪問指定符,類成員與基類的默認訪問指定符均為private
    • private是自己私有的,protected是可以讓孩子知道的,public是公開的!
      • public:可以被任意實體訪問
      • protected:只允許子類及本類的成員函數(shù)訪問
      • private:只允許本類的成員函數(shù)訪問。外部不能訪問。獲取私有數(shù)據(jù)成員的唯一方式是通過構(gòu)造函數(shù)或成員函數(shù)
    3. const
    • 對象聲明為const,只能調(diào)用被聲明為const的成員函數(shù),因為對象的this指針變量不能被修改

    • const只能應用于類的成員函數(shù),函數(shù)指定為const則不能修改調(diào)用它的對象,const只能用于屬于類的成員函數(shù)

    • const_cast是一種C++運算符,主要是用來去除復合類型中const和volatile屬性(沒有真正去除)。

      • 變量本身的const屬性是不能去除的,要想修改變量的值,一般是去除指針(或引用)的const屬性,再進行間接修改。

      • 用法:const_cast(data)

    4. 類的靜態(tài)數(shù)據(jù)成員
    • 無論類有多少個對象,靜態(tài)數(shù)據(jù)成員只有一份,而非靜態(tài)數(shù)據(jù)成員都是類中非靜態(tài)數(shù)據(jù)成員的副本,每個對象有一份副本
    • 即使未創(chuàng)建類的對象,類的靜態(tài)數(shù)據(jù)成員依然存在
    • 在類聲明外部初始化靜態(tài)數(shù)據(jù)成員,初始化時使用類名和作用域解析運算符限定成員
    5. 類的操作
    • 對象的數(shù)據(jù)成員包含此對象指針,可使對象鏈接起來,則將數(shù)據(jù)組織為結(jié)構(gòu)、鏈表等
    • 對象指針、對象引用作為函數(shù)參數(shù),作為參數(shù)傳遞比直接傳遞效率更高,不用復制操作
    • 開發(fā)容器類時,需仔細考慮該類的數(shù)據(jù)成員是否為源對象的副本
    • 控制對類的訪問:嵌套類
    6. 運算符重載
    • 不能重載的運算符::: ?: . .* sizieof
    • 確保標準運算符的重載版本與其原始用法含義基本保持一致
    • 二元運算符‘X’重載:
      • 寫法:operator+‘‘需要重載的運算符’’,比如:bool operator<()
      • 類成員函數(shù):返回類型 operator X(類型 右操作數(shù))
      • 非成員函數(shù):返回類型 operator X(類類型 左操作數(shù),類型 右操作數(shù))
      • 非成員函數(shù):返回類型 operator X(類型 左操作數(shù),類類型 右操作數(shù))
    • 一元運算符’Op’重載:
      • 類成員函數(shù):類類型& operator Op()
      • 全局函數(shù):類類型& operator Op(類類型&)
    7. 繼承
    • 派生類對象應代表有意義的基類對象,比如狗是一種動物,狗是有意義的、具體的,而動物無意義、不具體
    • 三種測試:
      1. 種類測試:派生類應描述基類所表示對象的一個子集
      2. 基類是否有特性不能用于派生類?如果沒有,繼承就是可行的
      3. 沒通過種類測試,則試下包含測試:類對象包含另一個類的實例,采用聚合
    • 多重繼承:派生類可以有任意多個直接基類,與單一繼承相對(只使用一個基類)
    • 虛基類,關(guān)鍵字virtual。為了避免同一基類的多個子對象被派生類多次包含,把重復的類聲明為虛基類。
    • 訪問派生類的繼承成員有兩個因素控制:基類成員的訪問指定符、派生類聲明中基類的訪問指定符
    8. 虛函數(shù)和多態(tài)
    • 基類指針:基類指針可存儲派生類對象地址,反過來不行,基類沒有描述完整的派生類對象

    • 什么是多態(tài)性:任何時刻,基類指針都可以指向任何派生于此基類的類對象。

      • “靜態(tài)類型”:指針在聲明時指向基類對象,通過靜態(tài)解析的基類指針來調(diào)用函數(shù),都會調(diào)用基類的函數(shù)。不取決于它指向的對象

      • “動態(tài)類型”:當指向派生類對象時,它會根據(jù)指向的對象類型而變化。

      • 類描述為多態(tài)性,那么它是至少包含一個虛函數(shù)的派生類

    • 多態(tài)性好處:

      • 設(shè)計與編譯時不能確認處理哪種類型的對象,只能在運行時確定(取決于用戶的輸入類型),而多態(tài)性可以滿足這種需求,一般用于交互式應用程序
    • 多態(tài)性的成本:

      • 內(nèi)存占用與程序文件更大,因為有vtable指針表
      • 虛函數(shù)調(diào)用速度略慢,開銷很小,可忽略
    • 什么是虛函數(shù):把一個函數(shù)聲明為基類的虛函數(shù),則派生于此基類的任何類中的此函數(shù)都是動態(tài)綁定的。用關(guān)鍵字virtual**聲明(注意不是定義)**虛函數(shù),虛函數(shù)是一個工具

      • 使用對象或直接成員選擇運算符調(diào)用虛函數(shù)-------靜態(tài)解析,編譯時解析
      • 通過指針或引用調(diào)用虛函數(shù)---------動態(tài)解析,調(diào)用時解析
      • 生效規(guī)則:如果派生類與基類中虛函數(shù)的函數(shù)名、參數(shù)列表、返回類型或者修飾符(比如const)不同,則虛函數(shù)機制失效,編譯時固定為靜態(tài)綁定。訪問指定符不同不影響虛函數(shù)生效
      • 模板函數(shù)不能為虛函數(shù)
      • 虛函數(shù)默認值為編譯時決定
    • 純虛函數(shù)

      • 定義:基類虛函數(shù)只聲明,不實現(xiàn),在類的聲明中加上“ = 0”(加在參數(shù)列表后)
    • 抽象類

      • 定義:包含純虛函數(shù)的類稱為抽象類
      • 存在的意義:定義派生于它的其他類,不允許創(chuàng)建抽象類的實例
      • 抽象屬性可繼承:派生類如果未定義抽象基類的純虛函數(shù),純虛函數(shù)會原封不動地繼承下來,則派生類也是一個抽象類
    • 靜態(tài)類型轉(zhuǎn)換 static_cast

      • static_cast比較接近于C語言中的強制轉(zhuǎn)換,多用于不同的基本數(shù)據(jù)類型的轉(zhuǎn)換
      • 在編譯期間轉(zhuǎn)換,轉(zhuǎn)換失敗的話會拋出一個編譯錯誤
      • 用法:static_cast(data)
        該運算符把data轉(zhuǎn)換為newType類型,但沒有運行時類型檢查來保證轉(zhuǎn)換的安全性
      • 將派生類指針轉(zhuǎn)換為基類指針是安全的;反之,將基類指針轉(zhuǎn)換為派生類指針是不安全的
    • 動態(tài)強制轉(zhuǎn)換 dynamic_cast

      • 用法:dynamic_cast(data)

      • dynamic_cast 會在程序運行期間借助 RTTI 進行類型轉(zhuǎn)換,這就要求基類必須包含虛函數(shù)

      • newType 和 data 必須同時是指針類型或者引用類型。換句話說,dynamic_cast 只能轉(zhuǎn)換指針類型和引用類型,其它類型(int、double、數(shù)組、類、結(jié)構(gòu)體等)都不行。

        對于指針,如果轉(zhuǎn)換失敗將返回 NULL;對于引用,如果轉(zhuǎn)換失敗將拋出std::bad_cast異常。

    • 虛析構(gòu)函數(shù)

      • 如果基類包含虛函數(shù),則基類的析構(gòu)函數(shù)應聲明為virtual
      • 析構(gòu)函數(shù)聲明中增加virtual關(guān)鍵字,告知編譯器,通過指針或引用調(diào)用的析構(gòu)函數(shù)是動態(tài)綁定的,運行時動態(tài)選擇
    • 運行器件標識類型

      • typeid 的操作對象既可以是表達式,也可以是數(shù)據(jù)類型
      • 用法:
        • typeid( dataType )
        • typeid( expression )
      • typeid 會把獲取到的類型信息保存到一個 type_info 類型的對象里面,并返回該對象的常引用
    • 類成員指針

      • 數(shù)據(jù)成員指針:
        • 不是類對象的數(shù)據(jù)成員指針,而是類成員的指針。它只是在和Box類型對象一起使用時,才指向內(nèi)存中的某個位置
        • 在類包含相同類型的幾個數(shù)據(jù)成員時,就可使用數(shù)據(jù)成員指針
      • 成員指針選擇運算符:
        • 直接指針選擇運算符:“.*” = 直接成員選擇運算符“.” + 解除引用運算符"*"
        • 間接指針選擇運算符:“->*” = 間接成員選擇運算符"->" + 解除引用運算符“*”
      • 成員函數(shù)指針:
        • 與函數(shù)指針類似。
        • 注意調(diào)用運算符“()”的優(yōu)先級高于選擇運算符"->",所以必須在調(diào)用前給函數(shù)加上括號
        • 為類class_type的函數(shù)聲明一個指針寫法:return_type (class_type::*pointer_name) (parameter_type_list);
        • 聲明函數(shù)指針同名詞:typedef return_type(class_type::*ptr_typename)(parameter_type_list)
      • 成員函數(shù)的參數(shù)可以是成員的指針
    9. 輸入輸出操作
    • 流:程序中輸入或輸出設(shè)備(數(shù)據(jù)的來源或目的地)的抽象表示。流是外部設(shè)備與計算機內(nèi)存之間流動的一系列字節(jié)
    • 數(shù)據(jù)傳輸模式:文本模式、二進制模式
    • 流的讀寫操作:提取和插入運算符讀寫各種類型的數(shù)據(jù)、讀寫字符
    10. 標準模板庫 STL
    • 三類工具:容器、迭代器、算法
    • 序列容器:
      • vector
        • 適合尾部增刪,類似數(shù)組
        • size()
        • capacity()
      • deque
        • 適合頭尾增刪,double-ended queue
        • size()
        • 無capacity函數(shù),容器大小始終等于其容量
      • list
        • 適合中間增刪,類似鏈表
        • pPrev
        • pNext
    • 關(guān)聯(lián)容器:
      • map
      • multimap
      • set
      • multiset
        • map\set鍵值唯一
        • multimap\multiset鍵值可重復
    • 迭代器
      • 迭代器是一種智能指針
      • 從容器中獲得的迭代器特性取決于容器類型
    • 算法
      • 算法是STL中大的工具集合
      • 算法有三大類:
        • 不修改序列的操作
        • 修改序列的操作
        • 排序、合并和相關(guān)操作

    你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

    分享標題:我對面向?qū)ο缶幊痰囊恍├斫?創(chuàng)新互聯(lián)
    當前地址:http://jinyejixie.com/article2/djcioc.html

    成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、搜索引擎優(yōu)化、自適應網(wǎng)站、網(wǎng)站收錄、網(wǎng)站內(nèi)鏈、定制網(wǎng)站

    廣告

    聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

    成都app開發(fā)公司
    安塞县| 宁海县| 古丈县| 怀来县| 千阳县| 临夏县| 遂宁市| 海门市| 中江县| 宜昌市| 行唐县| 桃江县| 镇原县| 胶州市| 洛隆县| 漠河县| 泌阳县| 左贡县| 赞皇县| 江阴市| 婺源县| 南丹县| 广南县| 玉溪市| 广汉市| 桂平市| 阿坝县| 江油市| 安远县| 南乐县| 铁力市| 宁晋县| 永清县| 康保县| 江孜县| 宁都县| 论坛| 板桥市| 陇南市| 老河口市| 长葛市|