原创 C++:02.類與對象:struct於class,拷貝構造,靜態成員,常對象,嵌套類,友元,類模板

struct與class: 在C語言中struct定義結構體,在C++中struct與class都是定義類,區別在struct默認public,class默認private。還有一種說法:沒有成員函數的 struct 還是稱作“結構”,結

原创 C++:13.多重繼承(菱形繼承),虛繼承,虛基類

多重繼承: 就是一個派生類多個基類,幾乎與單繼承是一致的。 唯一考點: 菱形繼承結構(B類C類繼承A類,D類繼承A類。),產生問題,派生類有多份基類的數據。   解決辦法:B C都採用虛繼承,只有一個虛繼承也無法解決該問題。 虛繼承: 厲

原创 C++:05.單例模式

單例模式 一個類只能被實例化一次,產生一個對象。 在類中,要構造一個實例,就需要通過構造函數,所以爲了防止在外部調用類的構造函數而構造實例,需要將構造函數的訪問權限標記爲protected或private; 並且需要提供給全局訪問點,就需

原创 C++:10.智能指針

智能指針作用: 一般的指針,存在資源泄露的問題。而智能指針一定會保證資源自動釋放(會自動調用delete),不用用戶參與。 爲什麼會自動調用delete? 實際上智能指針也是用類定義的,利用棧上的指針出函數就會自動調用析構函數的特點。 所

原创 C++:01.從C到C++:引用,inline,函數重載,全局和局部變量,this,new與malloc

頭文件:C++的標準輸入輸出頭文件#include <iostream>。一般還配有using namespace std;表示使用std名命空間。 在C++中,聲明一個函數時,可以爲函數的參數指定默認值。當調用該函數時,如果沒有參數,將

原创 C++:03.運算符重載

運算符重載的目的:讓對象的運算表現的和內置類型的運算一樣。 運算符重載函數,返回值一般不會是void,例如:連續的=就無法用void實現,一般用類類型的引用,可以保證連續運算。 class CComplex 複數類 { public

原创 C++:01.從C到C++:淺拷貝,優化規則,內存分配

new int[20]和new int[20]() 有()初始化爲該類型的默認值       沒有(爲隨機值)     開闢單個元素可以在()內隨意初始化,但開闢數組是()內不能寫入數字 類的成員方法在類體內定義和在類外定義: 1.類外定

原创 C++:09.Top K問題

沒啥說的:top k大 用小跟堆;   top k小 用大根堆 優先級隊列默認 使用 大根堆  可以求top K小 上代碼: 求Top K大 #include<iostream> #include <queue> priority

原创 C++:15.工廠模式:簡單工廠、工廠方法、抽象工廠

簡單工廠: 從前有個工廠,這個工廠能生產兩個產品A和B。有一天我來買A,我給工廠說,給我來個A。 工廠老闆聽見了,哦,你要A啊。我找一下啊。行,我發現我們廠能生產A,你等下哦,我馬上給你造處來。 工廠老闆將造A的需求拋給生產線,生產線走產

原创 C++:06.Nginx內存池

 先了解一下Nginx: Nginx是一個高性能的HTTP反向代理服務器,接收瀏覽器請求。其特點是佔有內存少,併發能力強,穩定性高。 nginx有什麼功能? 接收http服務,正向反向代理(負載均衡)。 正向代理代理客戶端,反向代理代理服

原创 C++:04.容器+迭代器+空間配置器

容器:順序容器/關聯容器 順序容器: 向量容器vector、雙端隊列 deque、雙向鏈表 list。 元素在容器中的位置同元素的值無關,即容器不是排序的。 vector 是可變長的動態數組。#include <vector>。 隨機訪問

原创 C++:12.繼承與派生

爲了支持代碼的複用,繼承與派生在C++中就顯得十分重要。 繼承與派生: 當定義一個新的類 B 時,如果發現類 B 擁有某個已寫好的類 A 的全部特點,此外還有類 A 沒有的特點,那麼就不必從頭重寫類 B,而是可以把類 A 作爲一個“基類”

原创 C++:13.多態、虛函數

多態與虛函數: 什麼是虛函數: 用virtual關鍵字聲明的函數都是虛函數。虛函數存在的唯一目的,就是爲了實現多態(動態綁定/運行時綁定)。 virtual 關鍵字只在類定義中的成員函數聲明處使用,不能在類外部寫成員函數體時使用。所有派生

原创 C++:11.異常操作

C++ 的異常操作 1.、異常涉及的關鍵字有哪些?  throw   拋出異常  。 try        中包含的是可能出現異常的語句,後面可以跟多個catch。 catch    用於捕獲異常後面括號中跟的是異常的類型,其中包含的是

原创 C++:07.無鎖數據結構

看了很多博客,大多講的很高深,看起來很費勁,能力有限只能簡單總結一下。 什麼是無鎖數據結構: 先說一下鎖是幹嘛的,在多線程環境下,由於很多操作不是原子操作,導致多個線程同時做了一個工作,爲了防止這種情況的發生,我們通過對執行代碼前上鎖,讓