日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++Primer Plus (第六版)阅读笔记 + 源码分析【第一章:预备知识】

發(fā)布時間:2025/3/20 c/c++ 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++Primer Plus (第六版)阅读笔记 + 源码分析【第一章:预备知识】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  • 第一章:預(yù)備知識
    • C++簡介
    • C++簡史
      • C語言
      • C語言編程原理
      • 面向?qū)ο缶幊?/li>
      • C++和泛型編程
      • C++的起源
    • 可移植性和標(biāo)準(zhǔn)
    • 程序創(chuàng)建的技巧
      • 創(chuàng)建源代碼文件
      • 編譯和鏈接
        • UNIX
        • Linux
        • Windows命令行編譯器
        • Windows編譯器

第一章:預(yù)備知識

C++語言編程方式:

  • C過程性語言。
  • 面向?qū)ο缶幊獭?/li>
  • 泛型編程。
  • C++繼承C語言:

  • 高效。
  • 簡潔。
  • 快速運行。
  • 可移植。
  • 提供結(jié)構(gòu)化編程工具。
  • 處理硬件問題的能力。(例如:管理通信端口和磁盤驅(qū)動器。)
  • 通用性。
  • 適合系統(tǒng)編程。
  • 使用廣泛。
  • 與UNIX操作系統(tǒng)聯(lián)系緊密。
  • 面向?qū)ο缶幊?#xff1a;應(yīng)付復(fù)雜程度不斷提高的現(xiàn)代編程任務(wù)而設(shè)計。
    C++模板特性提供泛型編程。

    C++簡介

    C到C++的學(xué)習(xí)量就像從頭學(xué)習(xí)C語言一樣大。
    學(xué)習(xí)C++需要擴(kuò)展思維。

    C++簡史

    C語言

    OS:

  • 管理計算機(jī)資源。
  • 處理人機(jī)交互。
  • 匯編語言:

  • 低級語言。
  • 依賴于計算機(jī)的內(nèi)部機(jī)器語言。
  • 直接操作硬件。(直接訪問CPU寄存器和內(nèi)存單元)
  • 針對特定計算機(jī)處理器。
  • 匯編程序移植到另個計算機(jī)上需要使用不同的匯編語言重新編寫程序。
  • 高級語言致力于解決問題,而不是針對特定硬件。
    編譯器:將高級語言翻譯成特定計算機(jī)的機(jī)器語言。(不同平臺使用不同的編譯器使用同一個高級語言程序。)

    C語言編程原理

    計算機(jī)語言處理:數(shù)據(jù) + 算法。
    數(shù)據(jù):程序使用和處理的信息。
    算法:程序使用的方法。

    C語言強(qiáng)調(diào)編程的算法方面。

    過程化編程:程序命令計算機(jī)按照一系列流程生成特定的結(jié)果。

  • 確定計算機(jī)應(yīng)采取的操作。
  • 使用編程語言實現(xiàn)這些操作。
  • 結(jié)構(gòu)化編程:

  • 限定分支:for,while,do while,if else。
  • 自頂向下:將大型程序分解為小型,便于管理,易于編寫的任務(wù)。(如果其中一項任務(wù)仍然過大,則繼續(xù)分解為更小的任務(wù)。)
  • 鼓勵程序員開發(fā)程序單元(函數(shù))來表示各個任務(wù)模塊。
  • 結(jié)構(gòu)化編程優(yōu)點:

  • 清晰。
  • 可讀。
  • 便于維護(hù)。
  • 面向?qū)ο缶幊?/h3>

    OOP:

  • 強(qiáng)調(diào)數(shù)據(jù)。
  • 試圖讓語言滿足問題的要求。
  • 理念:設(shè)計與問題本質(zhì)特性相對應(yīng)的數(shù)據(jù)格式。
  • 設(shè)計類準(zhǔn)確表示程序要處理的東西。
  • 有助于創(chuàng)建可重用代碼,減少大量工作。
  • 信息隱藏可以保護(hù)數(shù)據(jù),避免不適當(dāng)?shù)脑L問。
  • 多態(tài):為運算符和函數(shù)創(chuàng)建多個定義,通過編程上下文確定使用哪一個定義。
  • 繼承:使用舊類派生出新類。
  • 將重點放在表示概念上,而不是放在任務(wù)上。
  • 類:描述新型數(shù)據(jù)格式的規(guī)范。
    對象:根據(jù)規(guī)范構(gòu)造的特定數(shù)據(jù)結(jié)構(gòu)。

    類規(guī)定:

  • 可使用哪些數(shù)據(jù)來表示對象。
  • 可以對這些數(shù)據(jù)執(zhí)行哪些操作。
  • 自下而上:從低級組織(類)到高級組織(程序)的處理過程。

    設(shè)計有用、可靠的類是一項艱巨的任務(wù)。
    廠商提供了大量有用的類庫。
    可以方便地重用和修改現(xiàn)有的、經(jīng)過仔細(xì)測試的代碼。

    C++和泛型編程

    泛型編程:

  • 目標(biāo):重用代碼,抽象通用概念的技術(shù)更簡單。
  • 強(qiáng)調(diào)獨立于特定數(shù)據(jù)類型。(類型參數(shù)化)
  • 泛型編程提供了執(zhí)行常見任務(wù)的工具。
  • 對語言進(jìn)行擴(kuò)展,便于只寫一個泛型函數(shù),用于各種實際類型。
  • C++模板提供泛型編程機(jī)制。
  • 泛型:創(chuàng)建獨立于類型的代碼。

    C++的起源

    C++是C語言的超集。
    任何有效的C程序都是有效的C++程序。
    C++程序可以使用現(xiàn)有的C軟件庫。

    庫:

  • 編程模塊的集合。
  • 對很多常見的編程問題提供了可靠的解決方法。
  • 節(jié)省大量時間和工作量。
  • 計算機(jī)程序:將實際問題轉(zhuǎn)換為計算機(jī)執(zhí)行的一系列操作。
    OOP:聯(lián)系C++和問題所涉及的概念。
    C:聯(lián)系C++和硬件。

    可移植性和標(biāo)準(zhǔn)

    可移植:使用不同的平臺(操作系統(tǒng)和處理器),不修改代碼,重新編譯后程序運行良好。

    可移植性的障礙:

  • 硬件。(硬件特定的程序不可移植。)
  • 語言的差異性。(沒有統(tǒng)一的語言標(biāo)準(zhǔn)。)
  • 制定C++98標(biāo)準(zhǔn)。
    C++03技術(shù)性修改,未改變語言特性。
    理想情況下任何有效的C程序都是有效的C++程序。

    ANSI C:

  • 定義C語言。
  • 定義標(biāo)準(zhǔn)C庫。
  • ANSI /ISO C++標(biāo)準(zhǔn)提供了C++標(biāo)準(zhǔn)類庫。

    程序創(chuàng)建的技巧

    程序運行的步驟:

  • 編寫源代碼。
  • 編譯源代碼,將源代碼翻譯為主機(jī)使用的內(nèi)部機(jī)器語言。生成目標(biāo)代碼。
  • 目標(biāo)代碼 + 使用函數(shù)的目標(biāo)代碼 + 啟動代碼 鏈接 為可執(zhí)行代碼。

  • 4.3版本起,g++要求編譯源代碼文件時使用標(biāo)記 -std=c++0x:

    g++ -std=c++0x use_auto.cpp

    創(chuàng)建源代碼文件

    源文件命名必須使用正確的后綴,將文件標(biāo)識為C++文件。
    告訴程序員和編譯器該文件是C++源文件。

    編譯和鏈接

    UNIX

    編譯單個C++源代碼文件:CC spiffy.C 默認(rèn)生成 a.out可執(zhí)行文件。
    只使用一個源文件,鏈接程序刪除 spiffy.o 目標(biāo)代碼文件。

    編譯多個C++源代碼文件:CC my.C precious.C
    使用多個源文件,編譯器不會刪除目標(biāo)代碼文件。

    如果只修改 my.C 文件,進(jìn)行重新編譯:CC my.C precious.o 重新編譯 my.C 并將它與前面編譯的 precious.o 文件鏈接。

    顯示指定庫。例如要訪問數(shù)學(xué)庫中定義的函數(shù):

    CC usingmath.C -lm

    Linux

    g++ spiffy.cxx

    鏈接C++庫:

    g++ spiffy.cxx -lg++

    編譯多個源文件:

    g++ spiffy.cxx precious.cxx

    生成 a.out 可執(zhí)行文件和兩個目標(biāo)代碼文件 spiffy.o 和 precious.o 。
    如果修改了其中某個源代碼,例如 spiffy.cxx 則可以使用:g++ spiffy.cxx precious.o 重新編譯。

    Windows命令行編譯器

    g++ great.cpp

    編譯成功得到可執(zhí)行文件 a.exe

    Windows編譯器

    IDE:

    • Compile:對當(dāng)前打開文件中的代碼進(jìn)行編譯。
    • Build和Make:編譯項目中所有源代碼文件的代碼。(如果項目包含3個文件,只有一個被修改,則只重新編譯被修改的源文件。)
    • Build All:重新編譯所有源代碼文件。
    • Link:鏈接目標(biāo)代碼和所需庫代碼。
    • Run和Execute:運行程序。
    • Debug:以進(jìn)步方式執(zhí)行程序。

    調(diào)試版本和發(fā)布版本的區(qū)別:調(diào)試版本包含額外代碼,增加增大程序,降低執(zhí)行速度,可提供詳細(xì)調(diào)試信息。

    提示:改錯時,應(yīng)首先改正第一個錯誤。

    總結(jié)

    以上是生活随笔為你收集整理的C++Primer Plus (第六版)阅读笔记 + 源码分析【第一章:预备知识】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。