原创 深入瞭解c++的動態綁定和靜態綁定

爲了支持c++的多態性,才用了動態綁定和靜態綁定。理解他們的區別有助於更好的理解多態性,以及在編程的過程中避免犯錯誤。 需要理解四個名詞: 1、對象的靜態類型:對象在聲明時採用的類型。是在編譯期確定的。 2、對象的動態類型:

原创 malloc和new的十一個區別

一 屬性 1 new/delete是c++操作符 2 malloc/free是c/c++標準的庫函數 二 申請內存所在位置 1 new:自由存儲區:自由存儲區是c++基於new操作符的一個抽象概念。通過new申請的內存都稱爲

原创 vim之代碼摺疊

手動摺疊: zfap 你將會看到該段落被一行高亮的文本所代替。你已經創建了一個摺疊了。|zf|是一個操作符,而|ap|是一個文本對象。你可以將|zf| 操作符跟任何一個移動命令聯用,爲所經 之處的文本創建一個摺疊。|zf| 也能在可視模式

原创 探索友元的繼承和傳遞問題

書上說,友元類是單向的,不可繼承,不可傳遞,爲了驗證它,我完成了以下的測試 環境:vs2013 一.友元類繼承 1.A是B的友元類,A的public派生類能訪問B的私有成員和保護成員嗎? 不可以!請看下面代碼: <span style

原创 vs中debug和relsese版本的區別

vs中的程序有debug和release兩個版本,Debug通常稱爲調試版本,通過一系列編譯選項的配合,編譯的結果通常包含調試信息,而且不做任何優化,以爲開發 人員提供強大的應用程序調試能力。而Release通常稱爲發佈版本,是爲

原创 vue項目使用xlsx-style導出自定義格式excel

一.遇到問題 1.給自定義格式的excel中的合併單元格加邊框的時候,出現邊框不完整的情況. 解決:將該合併單元格拆分成最小單位的單元格,設置其邊框屬性. 直接賦值的話不可行,因爲子單元格並沒有邊框屬性,只有合併單元格纔有, 這裏

原创 c++中的常量摺疊

何謂常量摺疊? 常量摺疊就是將常量表達式計算求值,並用求得的值來替換表達式,放入常量表。可以算作一種編譯優化。(預編譯階段) 接下來我們通過一段代碼來分析一下了解一下常量摺疊及其特性: int main() { cons

原创 c++再回首之繼承

繼承乃c++三大特性之一,可見其重要性,在此總結一下繼承的特性: 一.繼承概念 繼承(inheritance)機制是面向對象程序設計使代碼可以複用的最重要的手段,它允許程序員在保持 原有類特性的基礎上進行擴展,增加功能。這樣產生新的類,稱

原创 深度探索c++對象模型

所謂知己知彼,百戰不殆。只有深入瞭解了c++對象的內存佈局,我們才能更熟練運用c++這門語言。 運行環境vs2013 一單繼承和多繼承的結合 class C { public: C() :c(1){} private:

原创 c++知識點大總結

     這是學習完c++以後,我自己總結的知識點。希望對大家有所幫助!!! 點贊 1 收藏 分享 文章舉報 db199410 發佈了49 篇原創文章 · 獲贊 11 · 訪問

原创 動態規劃

做了一些動態規劃的題目, 總結了一下思路和分析過程.在此分享 一.分析方法: 動態規劃的關鍵在於如何把一個問題分解成子問題, 分解完問題就可以得出關係式, 得出關係式就可以編碼了. 以下是我分解問題的思路: 1.確定分析緯度: ​

原创 大小端存儲

今天做到一道關於存儲的題,順便回顧一下大小端: union X { int32_t a; struct { int16_t b; int16_t c; }; };

原创 宏和內聯的比較

c++中強制建議用const替代宏常量,用內聯函數替代宏函數,這是爲何? 一.宏 首先我們來看下宏的優缺點: 優點:增強代碼的複用性,提高性能 缺點:不方便調試(因爲在預編譯階段就進行了替換) 可讀性差,可維護性差,容易誤

原创 成員函數的重載,覆蓋與隱藏

成員函數的重載,覆蓋和隱藏是三個很容易混淆的概念,下面我們來區分一下這三者 一 重載的特點 1 兩個函數處於同一作用域中(即同一個類中) 2 函數名要相同 3 參數不相同(參數的個數,參數的類型,參數的順序) 4 返回值可

原创 約瑟夫環的實現

首先介紹一下約瑟夫環: 約瑟夫環(約瑟夫問題)是一個數學的應用問題:已知n個人(以編號1,2,3…n分別表示)圍坐在一張圓桌周圍。從編號爲k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此