C++Primer Plus (第六版)阅读笔记 + 源码分析【第一章:预备知识】
- 第一章:預備知識
- C++簡介
- C++簡史
- C語言
- C語言編程原理
- 面向對象編程
- C++和泛型編程
- C++的起源
- 可移植性和標準
- 程序創建的技巧
- 創建源代碼文件
- 編譯和鏈接
- UNIX
- Linux
- Windows命令行編譯器
- Windows編譯器
第一章:預備知識
C++語言編程方式:
C++繼承C語言:
面向對象編程:應付復雜程度不斷提高的現代編程任務而設計。
C++模板特性提供泛型編程。
C++簡介
C到C++的學習量就像從頭學習C語言一樣大。
學習C++需要擴展思維。
C++簡史
C語言
OS:
匯編語言:
高級語言致力于解決問題,而不是針對特定硬件。
編譯器:將高級語言翻譯成特定計算機的機器語言。(不同平臺使用不同的編譯器使用同一個高級語言程序。)
C語言編程原理
計算機語言處理:數據 + 算法。
數據:程序使用和處理的信息。
算法:程序使用的方法。
C語言強調編程的算法方面。
過程化編程:程序命令計算機按照一系列流程生成特定的結果。
結構化編程:
結構化編程優點:
面向對象編程
OOP:
類:描述新型數據格式的規范。
對象:根據規范構造的特定數據結構。
類規定:
自下而上:從低級組織(類)到高級組織(程序)的處理過程。
設計有用、可靠的類是一項艱巨的任務。
廠商提供了大量有用的類庫。
可以方便地重用和修改現有的、經過仔細測試的代碼。
C++和泛型編程
泛型編程:
泛型:創建獨立于類型的代碼。
C++的起源
C++是C語言的超集。
任何有效的C程序都是有效的C++程序。
C++程序可以使用現有的C軟件庫。
庫:
計算機程序:將實際問題轉換為計算機執行的一系列操作。
OOP:聯系C++和問題所涉及的概念。
C:聯系C++和硬件。
可移植性和標準
可移植:使用不同的平臺(操作系統和處理器),不修改代碼,重新編譯后程序運行良好。
可移植性的障礙:
制定C++98標準。
C++03技術性修改,未改變語言特性。
理想情況下任何有效的C程序都是有效的C++程序。
ANSI C:
ANSI /ISO C++標準提供了C++標準類庫。
程序創建的技巧
程序運行的步驟:
4.3版本起,g++要求編譯源代碼文件時使用標記 -std=c++0x:
創建源代碼文件
源文件命名必須使用正確的后綴,將文件標識為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 -lmLinux
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 (第六版)阅读笔记 + 源码分析【第一章:预备知识】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 派生类的拷贝构造【C++继承】
- 下一篇: 取代C语言的标准输入输出:cin 和 c