博客 / 列表

ProMonkey; - 斷言及靜態斷言

在c++11之前就已經有了斷言,但是不是靜態斷言。 斷言 斷言是一種編程中常用的手段。在通常情況下,斷言就是將一個返回值總是需要為真的判斷表達式放在語句中,用於排除在設計的邏輯上不應該產生的情況。 一個函數總需要輸入在一定的範圍內的參數,那麼程序員就可以對該參數使用斷言,以迫使在該參數發生異常的時候程序退出,從而避免程序陷入邏輯的混亂。 從一些意義上講,斷言並不是正常程序所必需的,不過對於程序調試

c++

ProMonkey; - 模板的優化

嵌套時(比如printVectorvectorint)中的""的優化 在使用vectorint時,本意是向模板中傳入一個vectorint類型的參數,但是編譯器錯誤的將""識別為右移運算符,而不是模板參數表的結束。之前的解決方案是在""中間添加空格" "。 C++11優化了這一問題,使得不添加空格也可以正確的編譯。 #include iostream #include vector using n

後端

ProMonkey; - override

override 學過Java的小夥伴們應該不陌生,這個關鍵字就類似Java中的註解@override 確保在子類中聲明的重寫函數與基類的虛函數有相同的簽名,同時也明確表明將會重寫基類的虛函數,這樣就可以保證重寫的虛函數的正確性,也提高了代碼的可讀性; override和final一樣這個關鍵字要寫到方法的後面。 #include iostream using namespace std; cl

後端

ProMonkey; - Java中的final 和 C++中的final、const(C++中const關鍵字功能總結)

目錄 Java中final有三種主要用法: C++中final只有兩種: C++中const: 修飾變量(基本類型變量、成員變量): const與引用: const與指針:"const在*前,數據不能改,const在*後,指針不能改" const在函數中的應用: const修飾對象: Java中final有三種主

後端

ProMonkey; - 類成員變量的初始化

C++11中在初始化時可以使用 = ,也可以使用 {} ,也可以使用 ={} ; 需要注意的是:類中的靜態成員變量只有靜態常量,並且類型是整型或者枚舉類型,才能在類內初始化,其他都得在類外初始化。 #include iostream using namespace std; class Base { public: Base(){ } Base(int num){ } int a =

後端

ProMonkey; - long long

C++11中加入long long 的整型,C++11 標準要求 long long 整型可以在不同平台上有不同的長度,但至少8字節(64位)。long long 整型有兩種∶long long 和 unsigned long long //long long 對應類型的數值可以使用LL或者ll後綴(推薦用大寫LL,l容易和1混淆) long long num1 = 123456LL; long

後端

ProMonkey; - 原始字面量

C++ 中存在轉義字符,例如"\n"或"\t"。當我們嘗試打印轉義字符時,它們不會顯示在輸出中。為了在輸出屏幕上顯示轉義字符,我們使用了"R(帶轉義字符的字符串)"作為原始字符串字面量。在字符串前面使用 R 後,轉義字符將顯示在輸出中。 定義方式: R "xxx(原始字符串)xxx" 其中()兩邊的xxx要一樣包括長度、順序; xxx在編譯時會被忽略,對括號中的字符串沒有影響,一般xxx用途

後端