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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

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

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

  • 第一章:預備知識
    • C++簡介
    • C++簡史
      • C語言
      • C語言編程原理
      • 面向對象編程
      • C++和泛型編程
      • C++的起源
    • 可移植性和標準
    • 程序創建的技巧
      • 創建源代碼文件
      • 編譯和鏈接
        • UNIX
        • Linux
        • Windows命令行編譯器
        • Windows編譯器

第一章:預備知識

C++語言編程方式:

  • C過程性語言。
  • 面向對象編程。
  • 泛型編程。
  • C++繼承C語言:

  • 高效。
  • 簡潔。
  • 快速運行。
  • 可移植。
  • 提供結構化編程工具。
  • 處理硬件問題的能力。(例如:管理通信端口和磁盤驅動器。)
  • 通用性。
  • 適合系統編程。
  • 使用廣泛。
  • 與UNIX操作系統聯系緊密。
  • 面向對象編程:應付復雜程度不斷提高的現代編程任務而設計。
    C++模板特性提供泛型編程。

    C++簡介

    C到C++的學習量就像從頭學習C語言一樣大。
    學習C++需要擴展思維。

    C++簡史

    C語言

    OS:

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

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

    C語言編程原理

    計算機語言處理:數據 + 算法。
    數據:程序使用和處理的信息。
    算法:程序使用的方法。

    C語言強調編程的算法方面。

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

  • 確定計算機應采取的操作。
  • 使用編程語言實現這些操作。
  • 結構化編程:

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

  • 清晰。
  • 可讀。
  • 便于維護。
  • 面向對象編程

    OOP:

  • 強調數據。
  • 試圖讓語言滿足問題的要求。
  • 理念:設計與問題本質特性相對應的數據格式。
  • 設計類準確表示程序要處理的東西。
  • 有助于創建可重用代碼,減少大量工作。
  • 信息隱藏可以保護數據,避免不適當的訪問。
  • 多態:為運算符和函數創建多個定義,通過編程上下文確定使用哪一個定義。
  • 繼承:使用舊類派生出新類。
  • 將重點放在表示概念上,而不是放在任務上。
  • 類:描述新型數據格式的規范。
    對象:根據規范構造的特定數據結構。

    類規定:

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

    設計有用、可靠的類是一項艱巨的任務。
    廠商提供了大量有用的類庫。
    可以方便地重用和修改現有的、經過仔細測試的代碼。

    C++和泛型編程

    泛型編程:

  • 目標:重用代碼,抽象通用概念的技術更簡單。
  • 強調獨立于特定數據類型。(類型參數化)
  • 泛型編程提供了執行常見任務的工具。
  • 對語言進行擴展,便于只寫一個泛型函數,用于各種實際類型。
  • C++模板提供泛型編程機制。
  • 泛型:創建獨立于類型的代碼。

    C++的起源

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

    庫:

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

    可移植性和標準

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

    可移植性的障礙:

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

    ANSI C:

  • 定義C語言。
  • 定義標準C庫。
  • ANSI /ISO C++標準提供了C++標準類庫。

    程序創建的技巧

    程序運行的步驟:

  • 編寫源代碼。
  • 編譯源代碼,將源代碼翻譯為主機使用的內部機器語言。生成目標代碼。
  • 目標代碼 + 使用函數的目標代碼 + 啟動代碼 鏈接 為可執行代碼。

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

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

    創建源代碼文件

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

    編譯和鏈接

    UNIX

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

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

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

    顯示指定庫。例如要訪問數學庫中定義的函數:

    CC usingmath.C -lm

    Linux

    g++ spiffy.cxx

    鏈接C++庫:

    g++ spiffy.cxx -lg++

    編譯多個源文件:

    g++ spiffy.cxx precious.cxx

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

    Windows命令行編譯器

    g++ great.cpp

    編譯成功得到可執行文件 a.exe

    Windows編譯器

    IDE:

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

    調試版本和發布版本的區別:調試版本包含額外代碼,增加增大程序,降低執行速度,可提供詳細調試信息。

    提示:改錯時,應首先改正第一個錯誤。

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。