原创 虛函數 virtual function 筆記(與繼承)----C++學習之路

  1.虛函數的概念 在語法上,只要在成員函數前加上virtual,例如:virtual void draw() const =0; 所謂繼承其實就是繼承函數的調用權。子類可以調用父函數的函數。 但是當我們子類要去修改這個函數,則要用到虛

原创 單鏈表的C++構造筆記----數據結構學習之路

最近學習之中,遇到了單鏈表,單鏈表還是上數據結構時候學習的,也忘得差不多,(還是記筆記這個習慣好,忘了就看看)。於是去網上重溫了鏈表。 也花了幾個小時,自己在自己的筆記本上整理了下邏輯。 以下是自己參考的大佬列舉的知識點:點擊打開鏈接 C

原创 委託Delegation 筆記----C++學習之路

  1.委託的概念: 委託和複合非常相似,也是一個類含有has-a一個東西,但是這種擁有很虛,我們不知道何時纔會擁有。只在我想 要用到這個東西的時候纔去調用,這是與複合的不同。委託的另外一個術語就很明瞭:Compositon by ref

原创 繼承Inheritance筆記----C++學習之路

  如果說複合和委託是has-a,那繼承就是is-a。   1.繼承的語法。 舉個例子(代碼): struct _List_node_base { _List_node_base* _M_next; _List_node_

原创 function-like classes 仿函數筆記----C++學習之路

  1.本次筆記只提如何實現仿函數。   2.函數是怎麼樣的呢,有函數名稱,還有一個小括號,叫做函數調用操作符。如果有個東西能用到這個函數調用 操作符,那麼就叫做他爲函數,或者仿函數。   3.代碼實例: template<class T

原创 vptr與vtbl筆記----C++學習之路

  1.vptr虛指針,vtbl虛函數表 先看看示例代碼: class A { public: virtual void vfunc1(); virtual void vfunc2(); void func1();

原创 template template parameter模板模板參數筆記----C++學習之路

  1.如標題所說,也就是在模板中嵌入另一個模板舉個例子: template<typename T, template <typename T> class Contain

原创 this pointer筆記----C++學習之路

  1.什麼是this pointer 通過一個對象來調用函數,那麼這個對象的地址就是this pointer。   2.舉個例子 MFC中有CDocument的父類,CMyDoc爲子類繼承 CDocument::OnFileOpen()

原创 搭建一個簡易的時間服務器筆記----C++學習之路

  步驟: 1.創建TCP套接字 int listenfd; listenfd = Socket(AF_INET,SOCK_STREAM,0); 關於socket的函數介紹:點擊打開鏈接 第一個參數是協議族,具體在上面的鏈接有介紹,這

原创 namespace筆記----C++

  1.namespace有什麼用? namespace,要用來把東西區分開來,假如a與b獨立工作,製造出來的類名字有可能會相同,就用namespace來區分 那我a就再用一個名字把這包含起來,b也用一個名字包含起來。   2.代碼示例:

原创 重載new()delete()的筆記----C++學習之路

  1.除了之前筆記中的重載,現在重載的是這樣的表示: Foo* pf = new(300,'c')Foo;以下示例: (1)一般的operator new()重載: void* operator new(size_t size) {

原创 關於重載new delete new[] delete[]筆記----C++學習之路

  1.在之前的筆記中已經提到,new在編譯器下會分成三個動作,當有重載就會跑到重載之中。 先看一個代碼: void* myAlloc(size_t size) { renturn malloc(size); } void my

原创 C++11中的auto與範圍for----C++學習之路

 1.auto的用法: list<string> c; ... list<string>::iterator ite; ite = find(c.begin(),c.end(),target);在C11之後等價於: list<string

原创 關於靜態綁定與動態綁定的辨別筆記----C++學習之路

  1.從代碼來看: 假設有繼承關係:C->B->A B b; A a = (A)b; a.vfunc1();a是一個A類型的對象,賦值轉型後的b。 那麼通過a來調用的虛函數vfunc1(),它是通過對象來訪問的,靜態綁定。在彙編裏面就是

原创 關於網絡傳輸層的一些概念筆記----C++學習之路

  1.ipv4:網絡協議版本4,使用32位地址,提供分組遞送服務。   2.ipv6:網絡協議版本6,使用128位更大地址。   3.TCP:傳輸控制協議(Transmission Control Protocol),面向連接,提供可靠