原创 C++ 學習之繼承1:基類與派生類

面向對象編程OOP(object-oriented programming)的關鍵思想是多態性。C++中多態性用於通過繼承而相關聯的類型的引用或指針。 首先看看基本的基類和派生類,以C++ primer中一個程序段爲例: 在基類Item

原创 C++ 學習之構造函數:構造函數小結2 構造函數初始化列表

構造函數初始化列表以一個冒號:開始,接着是一個以逗號分隔的數據成員列表,每個數據成員後面跟着一個圓括號的初始化式。 在日常使用中,構造函數初始化列表可以使用,也可以省略。此時要弄清楚構造函數執行其實是分爲兩個階段的:1)初始化階段;2)普

原创 C++學習之main函數以及帶形參的main函數

     C++程序包含一個或者多個函數,但是必須有一個函數被命名爲main函數。操作系統通過調用main函數來執行程序,main函數是操作系統唯一顯式調用的函數。main函數在執行結束後會返回給操作系統一個值,該值必須是int型的,通常

原创 C++學習之虛函數

      初學C++,虛函數這部分感覺博大精深啊。C++正是通過虛函數實現了多態。在C++中,以virtual關鍵字開始的函數是虛函數,虛函數是基類希望派生類進行重新定義的函數,不希望派生類重新定義而完全繼承的不要定義爲虛函數。一旦函數

原创 C++ 學習之文件的讀寫

對於C++文件的讀寫,個人認爲關鍵之處在於牢記“文件流對象和文件的綁定是否正常” 要想讀寫文件,必須先定義文件的流對象,並且將定義的流對象與想要處理的文件進行綁定。對文件進行綁定,少不了涉及文件名稱。 在C++中,文件名作爲實參要求是C風

原创 數據結構與算法學習之棧及棧的相關操作

棧是一種將插入和刪除操作限制在一端的表,有時也成爲LIFO表;棧的操作核心是使用一個棧頂指針top指向棧頂元素。 棧中有兩個總要的操作就是Push和pop,進棧和出棧操作。 棧也可以使用兩種方式建立,數組方法和鏈表方法。當然數組實現是連續

原创 C++ 學習之構造函數:構造函數小結1

談到C++的類,就必然少不了構造函數這個概念,下面是自己學習C++ primer後對構造函數一些知識點的總結和理解 在創建類對象的時候,必然要執行構造函數,構造函數的功能是保證每個對象的數據成員具有合適的初始化。構造 函數是特殊的成員函數

原创 數據結構與算法學習之二叉樹及二叉樹的相關操作

樹中有一些概念需要我們瞭解,節點的度是指該節點子樹的個數,樹的度是指樹中節點度得最大值,一個樹的深度是指樹中節點最大層次值。二叉樹是數據結構中一種重要的結構,它有很多重要的性質: 1)二叉樹第i層上最多有2i-1個節點; 2)深度爲k的二

原创 數據結構與算法學習之隊列及隊列的相關操作

隊列也是一張表,它是一種插入操作在一端刪除操作在另一端進行的表。隊列的操作主要要抓住兩個核心位置隊頭front和隊尾rear。隊列的主要操作就是入隊與出隊了。同樣,隊列也可以使用數組和鏈表兩種方式實現。 下面是本人在學習隊列操作時利用鏈表

原创 數據結構與算法學習之鏈表

抽象數據類型ADT中的表可以用簡單的數組實現。但是用數組實現有兩個弊端: 1)首先要對錶的大小的最大值進行估計,以便於創建相應長度的數組,如果過大,會浪費很多空間。 2)插入和刪除操作在數組中的代價是昂貴的。因爲插入一個元素或者刪除一個元

原创 C++ 學習之模板

      泛型編程就是以獨立於任何特定類型的方式編寫代碼。它也是一種多態的應用,它可以使一個類或者一個函數操縱不同類型的對象。模板是泛型編程的接觸。下面是個人對模板學習的一點總結。 1.函數模板 函數模板的定義以關鍵字template開

原创 C++ 學習之函數傳參1:引用傳參和非引用傳參

個人認爲C++函數傳參的一個指導性原則是:若函數的形參是非引用類型,傳參時實際上是使用複製實參的值給形參,是實參值的副本,而非真正的實參;若函數的形參是引用類型的,則傳遞的其實就是實參本身,形參只不過是實參本身的別名而已。   1.非引用

原创 C++ 學習之函數重載、基於const的重載

函數重載 函數重載的定義是:在相同的作用域中,如果函數具有相同名字而僅僅是形參表不同,此時成爲函數重載。注意函數重載不能基於不同的返回值類型進行重載。 注意函數重載中的“形參表”不同,是指本質不同,不要被一些表象迷惑。main函數不能被重

原创 C++ 學習之函數:問題雜談

下面總結幾個關於函數部分知識的問題,也是自己在學習過程中概念不太清楚的東東。 1.函數返回值 當函數要返回一個引用時,千萬別返回函數中的局部對象的引用,因爲函數執行完會被釋放,局部對象會被釋放,因此對局部對象的引用將會指向不確定的內存;

原创 C++ 學習之函數傳參2:vector和數組傳參

前面一篇博客講到了在函數的傳參中數組是不能依靠複製傳遞的,而vector是可以複製的,但是由於vector中通常會含有很多元素,爲了避免大量的複製,可以將容器實參以引用的方式避免複製。下面主要講講在實際當中,對數組和容器的傳參的習慣手法。