1.const 作用
const char *p 指向的char不可改變
char *const p 說明指標是常量,指標自身不可改變
const char* const p 指標自身是常量,指向的char也不可改變。
2 .static
虛函式表現為多型時(執行)不可內聯。
volatile 型別修飾,告訴編譯器不要對這樣的物件進行優化。
assert()巨集,如同它的條件返回錯誤終止執行。
#program pack(push) 儲存對齊狀態;
#program pack(4) 設定為4位元組對齊;
#program pack(pop)恢復對齊狀態;
extern 」c』
被extern c 修飾的變數和函式按照c語言方式編譯和鏈結,
explicit 顯式關鍵字
防止隱式轉換和複製初始化。
friend 友元類和友元函式
能訪問私有成員,破壞封裝。
using 引入命名空間的乙個成員 盡量少使用using namespace std;
成員初始化列表
好處:高校,少了一次呼叫預設建構函式的過程。
場合:常量成員只能初始化不能賦值,所以必須放在初始化列表裡面
引用型別,引用必須在定義的時候初始化,不能重新賦值
使用初始化列表可以不必呼叫預設建構函式在初始化。
10.封裝:就是把客觀事務封裝成抽象的類,裡面的資料,方法給受信的子類或者物件使用,對不可信的資訊隱藏。
11.虛函式 virtural;
非類成員函式不能使虛函式
靜態函式不能使虛函式
建構函式不能使虛函式
== 純虛函式== virtual int a()=0; 基類裡沒有給他實現,而是留給派生類去實現
虛函式在子類可以不重寫,但是純虛函式必須在子類實現才可以例項化子類。
虛函式表:在程式唯讀資料段,存放虛函式指標,如果派生類實現了基類的某個虛函式,則在虛表中覆蓋原本基類的那個虛函式指標,在編譯時根據類的宣告建立。
auto_ptr 可以複製拷貝,之後所有去權轉讓。 不能管理陣列,析構函式只有delete
unique 可以管理陣列,析構用delete
強制型別轉換符;
static_cast
不執行執行時型別檢查,轉換安全性不如dynamic_cast;
用於非多型型別的轉換。
通常用於轉換數值資料型別 例如float int
子類轉父類可以,向上轉換時隱式轉換
dynamic_cast
用於多型型別的轉換
執行執行時的型別檢查
只適用與指標或引用
對不明確的指標的轉換將失敗,返回nullptr,但不引發異常。
可以在類層次中為所欲為
const_cast
用於刪除const,volatile等,比如const-int 到 int
reinterpret_cast
用於位的簡單重新解釋,允許指標之間的轉換。
允許任何整數型別轉換位指標,以及反向轉換
寫給自己看的C 委託筆記
首先先套用一下書中對於委託的描述 什麼是委託,法庭上律師為當事人辯護,他真正執行的是當事人的陳詞,律師就相當於乙個委託物件,而當事人則委託律師物件為自己辯護。c 中的委託概念就好比律師物件,它是乙個類 委託是類型別 因為只有類物件才有物件的概念。c 中的委託可以理解為函式的乙個包裝,它可以使函式作為...
寫給自己看的
我不常寫日誌,不過最近各種事情,還是有點需要記錄下來。今天下午上資料庫的時候,本來以為被鄙視了的 筆試居然發來恭喜通過的通知,說是等待面試,出乎意料的同時也感嘆rp又用掉了很多 最近的rp消耗確實有點失常,painterbee在mm上的表現就不說了,在校賽上也拿到了之前沒拿過的高名次,雖然是題目的區...
自己看的Manacher
1.問題引入 最長回文子串 即在給定的串中找到乙個子串,該子串是回文串且長度最長。回文串即對稱串。舉例 s abadaba 回文子串有 aba abadaba 而最大的即是s本身 2.常規方法 1 暴力演算法 o n3 暴力列舉每乙個子串,判斷是否為回文串。若是,記錄並更新長度 若不是,則跳過。in...