原创 c++-面向對象與面向過程

面向過程: 數據與程序分離 結構化程序設計:程序=算法+數據結構 基本思想:自上而下,逐步細化的設計方法和單入單出的控制結構。其理念就是將大型程序分解成小型,便於管理的任務。 結構化程序設計示意圖:                  

原创 c++-類的友元

友元是一種非類成員函數訪問類中非公有成員的一種機制 可以把一個函數指定爲友的友元===================》友元函數 也可以把整個類定義爲另一個類的友元==============》友元類 友元的作用:提高程序的運行效率 友元

原创 c++-構造函數與析構函數

類的數據成員是不能在聲明的時候初始化的,因爲類並不是一個實體,而是一種抽象類型,並不佔用內存空間,顯然無法容納數據。 如果一個類的成員都是共有的,則可以這樣定義: #include <iostream> using namespace

原创 c++-賦值與初始化的區別

在初始化語句中的等號(=)不是等號運算符,編譯器對這種表示方法做了特殊的解釋  #include <iostream> using namespace std; class Clock { private: int hour_;

原创 面試題3-二維數組中的查找

題目: 在一個二維數組中,每一行都按照從左到右遞增排序,每一列都按照從上到下遞增排序輸入這樣一個二維數組和一個整數,判斷這個整數在不在這個二維數組中 如果在返回true,如果不在返回false 例如矩陣: 1  2    8    9 2

原创 c++-類的初始化列表

推薦在構造函數中使用初始化列表,通過一段程序來學習初始化列表 class Time { private: int hour_; int minute_; int second_; public: Time(int hour, in

原创 c++-前向聲明

c++中類必須先聲明,再定義 如果兩個類相互引用形成一個環形引用時,無法先定義再使用,這時就要用到前向聲明。 前向生命的類不能實例化,只能定義指針或者引用 雖然在頭文件中不能include互相包含,但是在定義文件中要用include引用類

原创 c++-類的const

1.const成員函數 const成員函不能修改對象的狀態,只能訪問對象的值 #include <iostream> using namespace std; class A { private: int x_; mutable

原创 c++-類與結構體

類是特殊的結構體,用法只有一點不同: 類中成員默認是私有的,結構體默認是公有的 在c++中結構體中也可以有成員函數,在c中不可以 在c++中結構體可以使用類的定義去定義,在c中必須要加struct 看一個struct的代碼: #inclu

原创 c++-拷貝構造函數(複製構造函數)

功能:使用一個已經存在的對象來初始化一個新的同一類型的對象 聲明:只有一個參數,並且參數爲該類對象的引用 #include <iostream> using namespace std; class Test { pr

原创 c++-單例模式Singleton

單例模式就是保證類只能有一個實例(因爲現實中很多事物是獨一無二的) 注意一下幾點: (1)構造函數設爲私有(如果是公有的話,可以任意的調用構造函數),需要提供一個全局的訪問點 (2)禁止拷貝操作,禁止=運算符操作 (3)當生命週期完了之後

原创 c++-運算符的重載

運算符的重載實質是函數的重載 形式有兩種:類的成員函數和友元函數形式 類的成員函數的形式: 函數類型  operator運算符(參數); 友元函數格式: friend  函數類型  operator運算符(參數); 注意事項: (1)運算

原创 c++-類的static成員

有時我們需要一種所有的類對象所共享的成員,例如可以統計類對象的個數,那我們就要用到static關鍵字 我們可以是用全局變量來實現這個操作,但是全局變量在任何時候都可以修改,一不注意就會改變了它的值,這樣破壞了類的封裝性。 類的static

原创 c++-深拷貝與淺拷貝

淺拷貝:只是將值原樣賦值給新的對象中的成員變量。如果類中涉及到內存動態分配就會出錯 深拷貝:先開闢空間,然後再賦值 默認的拷貝構造函數是淺拷貝,只是逐個賦值 先看一個例子,觀察淺拷貝能出現什麼問題: #include <iostream>

原创 c++-++運算符重載

++運算符分爲前置++和後置++ 重載時後置++要多一個int 參數,以便區分前置++和後置++ 代碼如下: integer.h文件: #ifndef _INTEGER_H_ #define _INTEGER_H_ class Inte