Time of Update: 2018-12-05
一、標準庫string類型string類型支援長度可變的字串,C++標準庫將負責管理與儲存字元相關的記憶體,以及提供各種有用的操作 ,在VC中直接F1查看template < class CharType, class Traits=char_traits<CharType>, class Allocator=allocator<CharType> >class basic_stringtypedef
Time of Update: 2018-12-05
一、以操縱子方式格式化資料輸入輸出的格式控制使用系統標頭檔<iomanip>中提供的操縱符。把它們作為插入操作符<<的輸出對象即可。如setiosflags、setw、setfill、setprecision、hex、oct等。(一)、常用的流操縱運算元:(二)、ios類的枚舉常量 C++ Code 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
Time of Update: 2018-12-05
一、bool 類型邏輯型也稱布爾型,其取值為true(邏輯真)和false(邏輯假),儲存位元組數在不同編譯系統中可能有所不同,VC++中為1個位元組。聲明方式:bool result; result=true;可以當作整數用(true一般為1,false為0)把其它類型的值轉換為布爾值時,非零值轉換為true,零值轉換為false,注意會發生截斷。二、const
Time of Update: 2018-12-05
一、static 成員變數對於特定類型的全體對象而言,有時候可能需要訪問一個全域的變數。比如說統計某種類型對象已建立的數量。如果我們用全域變數會破壞資料的封裝,一般的使用者代碼都可以修改這個全域變數,這時可以用類的靜態成員來解決這個問題。非static資料成員存在於類類型的每個對象中,static資料成員獨立該類的任意對象存在,它是與類關聯的對象,不與類對象關聯。(1)、static成員的定義static成員需要在類定義體外進行初始化與定義(2)、特殊的整型static
Time of Update: 2018-12-05
一、類聲明//類是一種使用者自訂類型,聲明形式:class 類名稱{ public: 公有成員(外部介面) private: 私人成員 protected:
Time of Update: 2018-12-05
一、建構函式初始化列表推薦在建構函式初始化列表中進行初始化建構函式的執行分為兩個階段初始化段普通計算段(一)、對象成員及其初始化 C++ Code 12345678910111213141516171819202122232425262728293031323334353637383940#include <iostream>using namespace std;class Object{public: Object(int num) : num_(num) {
Time of Update: 2018-12-05
一、四種物件存留期和範圍棧對象隱含調用建構函式(程式中沒有顯式調用)堆對象隱含調用建構函式(程式中沒有顯式調用),要顯式釋放全域對象、靜態全域對象全域對象的構造先於main函數已初始化的全域變數或靜態全域Object Storage Service於.data段中未初始化的全域變數或靜態全域Object Storage Service於.bss段中靜態局部對象已初始化的靜態局部變數儲存於.data段中未初始化的靜態局部變數儲存於.bss段中 C++ Code 123456789101112131
Time of Update: 2018-12-05
一、建構函式、預設建構函式(1)、建構函式建構函式是特殊的成員函數建立類類型的新對象,系統自動會調用建構函式建構函式是為了保證對象的每個資料成員都被正確初始化函數名和類名完全相同不能定義建構函式的類型(傳回型別),也不能使用void通常情況下建構函式應聲明為公有函數,一般被隱式地調用。建構函式被聲明為私人有特殊的用途,比如單例模式,以後詳談。建構函式可以有任意類型和任意個數的參數,一個類可以有多個建構函式(重載)(2)、預設建構函式不帶參數的建構函式如果程式中未聲明,則系統自動產生出一個預設建構
Time of Update: 2018-12-05
一、static 與單例模式單例模式也就是簡單的一種設計模式,它需要:保證一個類只有一個執行個體,並提供一個全域訪問點禁止拷貝 C++
Time of Update: 2018-12-05
下面通過分別用C和C++來實現一個鏈棧(鏈表實現),從中體會資料封裝抽象的思想:C語言實現: C++
Time of Update: 2018-12-05
一、引子考慮求兩數較大值函數max(a,b)對於a,b的不同類型,都有相同的處理形式:return a < b ? b : a;用已有方法解決:(1)宏替換 #define max(a,b) ((a)< (b) ? (b) : (a))存在的問題:避開類型檢查(2)重載存在的問題:需要許多重載版本(3)使用函數模板二、模板模板是一種參數化的多態工具所謂參數化的多態性,是指將程式所處理
Time of Update: 2018-12-05
一、深拷貝與淺拷貝說得簡單點,假設一個類有指標成員,如果在拷貝的時候順帶連指標指向的記憶體也分配了,就稱為深拷貝,如(v2 從 v 拷貝而來):如果只是分配指標本身的記憶體,那就是淺拷貝,如:淺拷貝造成的問題是有兩個指標指向同塊記憶體,delete 其中一個指標,那麼剩下的指標將成為野指標。編譯器合成的預設拷貝建構函式和賦值運算子是淺拷貝的,如果只是普通成員的賦值,淺拷貝也是可以的。 C++
Time of Update: 2018-12-05
一、友元介紹我們知道,類的成員函數可以訪問同類的其他成員函數,包括公有、私人和保護成員。而類的外部函數只能訪問類的公有成員。友元是一種允許非類成員函數訪問類的非公有成員的一種機制。可以把一個函數指定為類的友元,也可以把整個類指定為另一個類的友元。友元函數友元類二、友元函數友元函數在類範圍外定義,但它需要在類體中進行說明為了與該類的成員函數加以區別,定義的方式是在類中用關鍵字friend說明該函數,格式如下:friend 類型
Time of Update: 2018-12-05
一、異常與繼承如果異常類型為C++的類,並且該類有其基類,則應該將衍生類別的錯誤處理程式放在前面,基類的錯誤處理程式放在後面 C++ Code 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#include <iostream>#include <string>
Time of Update: 2018-12-05
一、多重繼承單重繼承——一個衍生類別最多隻能有一個基類多重繼承——一個衍生類別可以有多個基類class 類名: 繼承方式 基類1,繼承方式 基類2,…. {….};衍生類別同時繼承多個基類的成員,更好的軟體重用可能會有大量的二義性,多個基類中可能包含同名變數或函數多重繼承中解決訪問歧義的方法:基類名::資料成員名(或成員函數(參數表))明確指明要訪問定義於哪個基類中的成員 C++ Code 12345678910111213141516171819202122232425262728293031
Time of Update: 2018-12-05
一、運算子多載運算子多載允許把標準運算子(如+、—、*、/、<、>等)應用於自訂資料類型的對象直觀自然,可以提高程式的可讀性體現了C++的可擴充性運算子多載僅僅只是文法上的方便,它是另一種函數調用的方式運算子多載,本質上是函數重載不要濫用重載、因為它只是文法上的方便,所以只有在涉及的代碼更容易寫、尤其是更易讀時才有必要重載二、成員函數重載成員函數原型的格式:函數類型 operator 運算子(參數表);成員函數定義的格式:函數類型 類名::operator 運算子(參數表){函數體;
Time of Update: 2018-12-05
一、檔案流ofstream,由ostream派生而來,用於寫檔案ifstream,由istream派生而來, 用於讀檔案fstream,由iostream派生而來,用於讀寫檔案二、開啟檔案說明了流對象之後,可使用函數open()開啟檔案。檔案的開啟即是在流與檔案之間建立一個串連函數原型void open(const char * filename, int mode = ios::out,int prot =
Time of Update: 2018-12-05
一、標準庫的vector類型vector是同一種類型的對象的集合 vector的資料結構很像數組,能非常高效和方便地訪問單個元素vector是一個類模板(class template) template < class Type, class Allocator = allocator<Type> >class vector要使用vector必須包含相關標頭檔#include <vector>using
Time of Update: 2018-12-05
在前面文章中使用過幾次String類的例子,現在多重載幾個運算子,更加完善一下,並且重載流類運算子。[]運算子多載+運算子多載+=運算子多載<<運算子多載>>運算子多載String.h: C++
Time of Update: 2018-12-05
去了趟C公司INTview了一下,時間有點久了,該把一些收穫整理一下了,免得以後再犯。1,