C 程式設計思想學習 物件的建立與使用

2021-06-05 06:14:44 字數 1715 閱讀 1952

1、分段編譯、連線

通過變數命名空間,將乙個大的程式構造為許多小的程式。而這些小的程式可以單獨編譯,單獨除錯。

函式、變數的定義需要編譯器在他們的定義的點分配空間。而宣告則不是。

函式的宣告為,告訴編譯器函式的特徵,從而編譯器能夠使用這些特徵資訊進行安全性的檢查。

包含標頭檔案則:如果為什麼宣告標頭檔案中所包含的庫函式,只需要包含庫檔案所在的庫即可。當庫函式在程式設計師自己定義的檔案中時,一般用」」來包含。在c++中一般使用沒有副檔名的並在檔案前面帶字元c的標頭檔案。如:c中#include而c++中#include。而且在c++中的庫函式都是經過了模組化的處理。所以,最好使用c++中的。

所謂標頭檔案預編譯,就是把乙個工程(project)中使用的一些mfc標準標頭檔案(如windows.h、 afxwin.h)預先編譯,以後該工程編譯時,不再編譯這部分標頭檔案,僅僅使用預編譯的結果。這樣可以加快編譯速度,節省時間。

預編譯標頭檔案通過編譯stdafx.cpp生成,以工程名命名,由於預編譯的標頭檔案的字尾是「pch」,所以編譯結果檔案是projectname.pch。

編譯器通過乙個標頭檔案stdafx.h來使用預編譯標頭檔案。stdafx.h這個頭檔名是可以在project的編譯設定裡指定的。編譯器認為,所有在指令#include "stdafx.h"前的**都是預編譯的,它跳過#include "stdafx. h"指令,使用projectname.pch編譯這條指令之後的所有**。

因此,所有的cpp實現檔案第一條語句都是:#include "stdafx.h"(最後四段為引用csdn部落格)。

2、名字空間

c++中用namespace即命名空間來隔離各個變數的、函式名字的空間範圍。但只包括標頭檔案,編譯器是無法找到庫提供的函式的,因為,這些庫函式、變數的宣告都是在命名空間中的。如果未指定命名空間,即沒有宣告。所以,需要用「using namespace 命名空間名」來指定所使用哪乙個命名空間。而c++將所有的標準庫都封裝在std命名空間中了。在c中包含庫檔案用.h的形式,c++提供對向下的相容,所以,可以不用命名空間,而在使用標準化的c++類庫時,必須要指定所使用的命名空間。

3、字串操作

c++中提供了string類。使用該類可以通過「=」來方便的進行字串之間的賦值,拖過「+」來組合字串。同時在定義string類的物件時直接用string str(「初值」);的方式賦初值。cout類也對字串的「+」操作符進行了過載,即實現了string類的介面。

4、檔案的讀寫

c++中的標頭檔案標頭檔案提供iofstream流類來對對檔案的讀寫,而次標頭檔案也自動包含了iostream。讀為建立乙個ifstream的物件,寫為ofstream的物件。讀寫為iofstream類的物件。iostream類庫預設的提供了函式getline用以從指定的流中讀取一行的內容,放至指定的字串變數中。同時檔案流的讀寫對「<<」和「>>」也實現了運算子的過載。

5、vector

vector是通過模板實現的。所以,使用vector《類名》來宣告乙個只能用來裝載本類的物件的乙個容器。vector使程式可以動態的方便的將類的新元素放入容器中,而不必事先考慮需要多少新元素,即需要多少儲存空間。其中push_back用於向容器尾新增乙個新元素。而,push_front用於向容器中頭部的新增一新元素。用陣列下標的方式即可以讀取容器中指定位置的元素。可以理解為通用靈活的乙個暫存器。也可以對已經存在於容器中的某個元素通過已經實現的「=」運算子過載來進行重新賦值。

以上內容為個人學習c++程式設計思想一書時的理解,難免描述有不準確之處、同時可能也有錯誤之處,敬請之處。謝謝了!

C 程式設計思想學習 資料抽象

1 動態記憶體分配 c 使用關鍵字new動態分配記憶體。一般表示式為 new type 如,new unsigned char bytes type也可以是結構體或者類名 用new分配的記憶體必須用delete來釋放。如果,多次申請但是不釋放則到達一定程度,記憶體耗盡,會發生記憶體洩露。釋放時也要注...

C 程式設計思想學習 隱藏實現

1 c 中的訪問控制 public,private不用介紹,protected,可以被繼承的結構訪問。這裡重點一提的是protected是專為繼承而設計的。protected在所屬類的成員函式和在類的外部函式中對類的物件的可見性與private是一樣的 都不可見。而protected只有在繼承時才表...

C 程式設計思想學習筆記 常量

c 程式設計思想學習筆記 常量 一 全域性範圍的const使用 1 const的使用有兩種效果,一是生成編譯期常量,二是執行期常量。做為編譯期常量主要用作值替代,即取代c中的 define常量定義,一般用於設定陣列大小。此時不分配儲存空間,只在有extern限定或取位址時才會分配空間。做為執行期常量...