C++調試

來源:互聯網
上載者:User

標籤:目標   解構函式   lin   public   strong   封裝   初始化   new   需要   

C+ +語言支援“分別編譯”(separate compilation)。也就是說,一個程式所有的內容,可以分成不同的部分分別放在不同的.cpp檔案裡。cpp檔案裡的東西都是相對獨立的,在編譯(compile)時不需要與其他檔案互連,只需要在編譯成目標檔案後再與其他的目標檔案做一次連結(link)就行了。

應該記住的一點就是,.h標頭檔中,只能存在變數或者函數的聲明, 而不要放定義。即,只能在標頭檔中寫形如:extern int a;和void f();的句子。這些才是聲明。如果寫上int a;或者void f() {}這樣的句子,那麼一旦這個標頭檔被兩個或兩個以上的.cpp檔案包含的話,編譯器會立馬報錯。

 

複習一些c++編程內容

資料的封裝:物件導向的指導思想就是以對象為中心,就是要以誰做什麼來表達程式的邏輯,要將資料的操作都轉化為成員函數的調用。 也就是說,對象在程式中的所有操作,都通過調用自己的函數來完成。

資料封裝的好處:可以對傳入的參數加入條件限制。也可以限制某些資料唯讀不寫。

內嵌函式:利用關鍵字inline定義,在編譯時間,直接將函數體代碼和實參代替函數調用語句。類似於直接插入指令碼。(結構和邏輯都時比較簡單的)

類內定義:在定義一個類的時候,如果將成員函數的函數體,寫在類的內部,這樣就稱為類內定義。(類內定義的成員函數,編譯器會優先將其編譯成內嵌函式)

類外定義:成員函數的函數體,寫在類的外面。分別為同檔案類外定義(成員函數雖然定義在類的外面,但和類的定義在同一個檔案當中)和分檔案類外定義(大型項目和專業程式員都會採用這種定義方式)。在標頭檔中,定義了類並且聲明類的成員函數,在分檔案當中定義類的成員函數。必須將標頭檔包含入分檔案中。

 

記憶體分區:

棧區:所定義的變數就儲存在棧區。其特點是記憶體又系統來進行控制,無論是分配還是回收,都不需要程式員來關心。

堆區:是用new來分配的記憶體,這是需要程式員自己來回收的。

全域區:用來儲存全域變數和靜態變數。

常量區:儲存一些字串和常量。

代碼區:儲存編譯之後的代碼。

 

對象的初始化:分為兩種(1)有且僅有一次的初始化(2)根據條件初始化

建構函式:用來初始化。將初始化代碼寫在建構函式內,就可以起到初始化的作用,建構函式在對象執行個體化時被自動調用(被調用,且僅被調用一次)。初始化函數要與類同名,且建構函式沒有傳回值,不用寫void。在執行個體化對象時,不需要傳遞參數的建構函式稱為預設建構函式。

初始化列表:在建構函式中是用,例如

clas Student {public:    Student():m_strName("Jim"),m_iAge(10){}private:    string m_strName;    int m_iAge;};

初始化列表特性:(1)初始化列表先於建構函式執行(2)初始化列表只能用於建構函式(3)初始化列表可以同時初始化多個資料成員。

初始化列表的必要性:比如某一個const常量,如何去給其賦值呢,就需要用到初始化列表了。 

拷貝建構函式:通過同類型的對象執行個體化另外的對象時,自動調用拷貝建構函式。當沒有自訂拷貝建構函式的時候,系統會自動產生一個拷貝建構函式。

解構函式:用于歸還系統資源,收拾最後的殘局。釋放掉所佔用的記憶體。解構函式不允許傳遞參數,也就不允許重載。

解構函式:如果沒有自訂解構函式,則系統自動產生一個解構函式。在對象銷毀時自動調用。

 標頭檔中角括弧<>和雙引號“”的區別:

<>角括弧是從預設庫中搜尋;而“”雙引號是從當前檔案目錄下搜素。

 

C++調試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.