原创 C++面向對象-2-類的構造函數和析構函數

上一篇學習了C++中的類定義,用了兩個練習題來演示一個class的屬性和行爲的定義和調用,以及展開了權限控制和一個類的屬性還可以是其他類的一個實例。其中有好多代碼是set和get, 寫多了有時候很煩,當然寫set和get方法是一個好習慣。

原创 C++面向對象-5-類的構造函數調用規則

繼續來學習構造函數的知識,通過前面學習,我們知道一個類中可以有 無參構造,有參構造,拷貝構造,那麼編譯器是如何決定調用這些構造函數,本篇就來學習這個調用規則。 知識點: 默認情況下,C++編譯器至少給一個類添加3個函數 1.默認構造函數(

原创 C++面向對象-4-拷貝構造函數的調用時機

繼續來學習構造函數,前面一篇學習了拷貝構造函數,至少了解了什麼是拷貝構造函數,這篇就來學習下拷貝構造的使用。什麼時候會使用到拷貝構造函數呢?大概可以分成三種場景: 使用一個已經創建完畢的對象來初始化一個新對象 值傳遞的方式給函數參數傳值

原创 C++面向對象-15-賦值運算符的重載

這一篇來學習賦值運算符重載,先來了解什麼是賦值運算符,也就是單個等號(=)就是賦值運算符。什麼時候,我們需要對賦值運算符進行重載呢?這裏面離不開值拷貝的知識。   1.C++編譯器默認功能 C++編譯器至少給一個類添加4個函數 1.默認構

原创 C++模板-32-普通函數和模板函數調用規則

上一篇學習了普通函數和模板函數的區別,這一篇繼續學習兩者的調用規則。也就是在同一個文件中,如果同時存在普通函數名稱和模板函數名稱一致,那麼兩者之間的調用規則是如何。   1.如果普通函數和模板函數都可以調用,優先調用普通函數。 下面代碼,

原创 C++模板-33-類模板和函數模板的區別

這篇開始學習類模板相關知識,本篇主要學習什麼是類模板,還有類模板和函數模板的區別   1.類模板語法 template <class T> 類 模板聲明下面是函數就是函數模板,如果是類就叫類模板   2.一個類模板例子 下面寫一個Per

原创 C++模板-31-普通函數和模板函數的區別

前面學習了使用函數模板來實現一個數組排序的例子,基本上體會到了函數模板的好處,就是針對參數類型會自動推導,減少了重複代碼。那麼函數模板和普通的函數有什麼區別呢,本篇來學習這個。 1.普通函數調用時可以發生自動類型轉換 下面來舉例一個簡單的

原创 C++模板-30-函數模板注意事項和數組排序練習

前面學習了函數模板,有了一個基本的瞭解。我們先來學習函數模板,後面還有一個類模板。先看看函數模板使用需要注意哪些事項,然後通過一個數組排序來練習函數模板。   1.函數模板注意事項 1)自動類型推導,必須推導出一致的數據類型T,纔可以使用

原创 C++模板-29-什麼是模板和一個簡單的例子

這篇開始進入模板的學習,接下來要學習模板,各種函數模板和類模板,然後學習幾個標準的類,例如string類的,然後過度到學習各種容器。   1.什麼是模板 模板就是建立通用模具,大大提高代碼複用性。   2.沒有模板是什麼樣的 例如,我們來

原创 C++面向對象-28-讀寫二進制文件

前面學習了對文本文件的讀寫操作,有了這個基礎,我們來學習下,C++對二進制文件的讀寫操作。因爲是二進制,所以不管是讀還是寫文件,其中打開方式要指定爲iso::binary。   1.寫二進制文件 二進制方式寫文件主要利用流對象調用成員函數

原创 C++面向對象-27-讀寫文本文件

       前面學習了多態,現在我們開始學習一些C++的武器,也就是一些常用的類庫。程序在運行時產生的數據都屬於臨時數據,程序一旦運行結束都會被釋放。通過文件可以將數據持久化,也就是把數據寫入文件,叫序列化,程序讀取文件,顯示出各種數據

原创 C++面向對象-26-虛析構和純虛析構

這篇來學習多態中可能會發生內存泄漏和解決辦法,就要使用到虛析構函數和純虛析構函數。先不介紹概念,肯定和前面學構造函數和析構函數中的析構函數有關係。先通過引出問題,然後介紹這兩個概念和特點。   1.多態基本代碼 在前面例子我們可寫出一下代

原创 C++面向對象-25-純虛函數和抽象類

前面學習了多態底層原理和多態練習,這篇學習什麼是純虛函數和抽象類。虛函數前面我們介紹過,一個普通的類成員函數前面添加關鍵字virtual就變成一個虛函數。會有虛函數指針指向虛函數列表的概念,這裏純虛函數肯定和虛函數是有關係的。   1.虛

原创 C++面向對象-22-多態基本語法

前面內容學習了繼承,在面向對象三大核心概念,我們學習完了封裝,繼承,剩下一個多態。這篇開始學習多態的基本概念和C++中多態基本使用。 1. 多態分兩類 靜態多態:函數重載和運行符重載屬於靜態多態,服用函數名 動態多態:派生類和虛函數實現運

原创 C++面向對象-24-非多態vs多態實現計算器

現在基本上知道了什麼是多態,接着我們來一個例子使用多態和不使用多態來實現一個小功能的對比。感受下使用多態帶來的便利。   1.非多態方式實現計算器 這裏計算器我們就簡單描述成兩個數的相加,相減和相乘。 #include <iostrea