Time of Update: 2017-01-19
C++ 允許同一範圍內具有相同名稱的多個函數的規範。這些函數稱為重載函數,“重載”中對其進行了詳細介紹。利用重載函數,程式員可以根據參數的類型和數量為函數提供不同的語義。例如,採用字串(或 char *)參數的 print 函數執行的任務與採用“雙精確度”類型的參數的函數執行的任務截然不同。重載允許通用命名並使程式員無需建立名稱,例如 print_sz 或 print_d。下表顯示了 C++ 使用函式宣告的哪些部分來區分同一範圍內具有相同名稱的函數組。重載注意事項
Time of Update: 2017-01-19
包含變數參數列表的函數如果函式宣告中最後一個成員是省略符號 (...),則函式宣告可採用數量可變的參數。在這些情況下,C++ 只為顯式聲明的參數提供類型檢查。即使參數的數量和類型是可變的,在需要使函數泛化時也可使用變數參數列表。函數的系列是一個使用變數參數列表的函數的樣本。printfargument-declaration-list包含變數參數的函數若要訪問聲明後的參數,請使用包含在標準包含檔案 STDARG.H
Time of Update: 2017-01-19
枚舉枚舉是使用者定義的類型,其中包含一組稱為列舉程式的命名的整型常數。文法// unscoped enum:enum [identifier] [: type]{enum-list}; // scoped enum:enum [class|struct] [identifier] [: type] {enum-list};// Forward declaration of enumerations (C++11):enum A : int; // non-scoped enum must
Time of Update: 2017-01-19
命名空間是一個聲明性地區,為其內部的標識符(類型、函數和變數等的名稱)提供一個範圍。命名空間用於將程式碼群組織到邏輯組中,還可用於避免名稱衝突,尤其是在基本程式碼封裝括多個庫時。命名空間範圍內的所有標識符彼此可見,而沒有任何限制。命名空間之外的標識符可通過使用每個標識符的完全限定名(例如 std::vector<std::string> vec;)來訪問成員,也可通過單個標識符的 using 聲明 (using std::string) 或命名空間中所有標識符的 using 指令 (
Time of Update: 2017-01-19
1 什麼是C語言的隱式函式宣告在C語言中,函數在調用前不一定非要聲明。如果沒有聲明,那麼編譯器會自動按照一種隱式聲明的規則,為調用函數的C代碼產生彙編代碼。下面是一個例子:int main(int argc, char** argv){ double x = any_name_function(); return 0;}單純的編譯上述原始碼,並沒有任何報錯,只是在連結階段因為找不到名為any_name_function的函數體而報錯。[smstong@centos192 test]$
Time of Update: 2017-01-19
define的用法只是一種純粹的替換功能,宏定義的替換是前置處理器處理的替換。 一:簡單的宏定義用法 格式:#define 標識符 替換內容 替換的內容可以是數字,字元,字串,特殊字元和空格,後面是什麼內容就會替換成什麼內容。 例如: #define N 5 效果等同於 int array [5]; int array[N]; 同樣效果: #define N = 5 int
Time of Update: 2017-01-19
break 語句break 語句可終止執行最近的封閉迴圈或其所在條件陳述式。 控制權將傳遞給該語句結束之後的語句(如果有的話)。break;備忘break 語句與 switch 條件陳述式以及 do、for 和 while 迴圈語句配合使用。在 switch 語句中,break 語句將導致程式執行 switch 語句之外的下一語句。 如果沒有 break 語句,則將執行從匹配的 case 標籤到 switch 語句末尾之間的每個語句,包括 default 子句。在迴圈中,break
Time of Update: 2017-01-19
WNDCLASS是一個由系統支援的結構,用來儲存某一類視窗的資訊,如ClassStyle,訊息處理函數,Icon,Cursor,背景Brush等。也就是說,CreateWindow只是將某個WNDCLASS定義的表單變成執行個體。要得到某一視窗的WNDCLASS資料,可以用GetClassLong(); RegisterClass()就是在系統註冊某一類型的表單。也就是將你提供的WNDCLASS資料註冊為一個視窗類別,在WNDCLASS.lpszClassName中定義該WNDCLASS的標識
Time of Update: 2017-01-19
While 語句重複執行語句,直到運算式計算為零。文法 while ( expression )statement備忘expression 的測試在每次執行迴圈前發生;因此 while 迴圈執行零次或更多次。 運算式必須是整型、指標類型或包含明確的整型或指標類型轉換的類類型。當中斷、導航或迴歸在語句體中執行時,也可以中止while 迴圈。請使用continue語句來結束當前迭代但不退出while迴圈。 繼續 將控制項傳遞給下一輪迴圈 while。以下代碼使用 while
Time of Update: 2017-01-19
__if_exists 語句__if_exists 語句測試指定的標識符是否存在。如果該標識符存在,則執行指定的語句塊。文法__if_exists ( identifier ) { statements};參數 參數 說明 identifier 要測試其存在性的標識符。 statements identifier 存在時要執行的一個或多個語句。
Time of Update: 2017-01-19
if-else 語句控制條件分支。文法 if ( expression ) statement1[else statement2]備忘如果 expression 的值不為零,執行 statement1 。如果選項 else 存在,如果 expression 的值為零,執行 statement2。 運算式必須是算術或指標類型,或者必須是定義明確的整型或指標類型轉換的類類型。有關轉換器的資訊,請參見標準轉換。在兩個形式的 if 語句和 expression 語句中計算,可以具有除結構以外的任何值,
Time of Update: 2017-01-19
標記語句標籤用於將程式控制權直接轉交給特定語句。identifier : statementcase constant-expression : statementdefault : statement標籤的範圍為整個函數,已在其中聲明該標籤。備忘有三種標記語句。它們全都使用冒號將某種標籤與語句隔開。case 和 default 標籤特定於 case 語句。#include <iostream> using namespace std; void test_label(int x)
Time of Update: 2017-01-19
type_info 類type_info 類描述編譯器在程式中產生的類型資訊。此類的對象可以有效儲存指向類型的名稱的指標。 type_info 類還可儲存適合比較兩個類型是否相等或比較其排列順序的編碼值。類型的編碼規則和排列順序是未指定的,並且可能因程式而異。必須包含 <typeinfo> 標題檔案才能使用 type_info 類。 type_info 類的介面是:class type_info {public: virtual ~type_info(); size_t
Time of Update: 2017-01-19
由於強制轉換為參考型別失敗,dynamic_cast 運算子引發 bad_cast 異常。文法catch (bad_cast) statement備忘bad_cast 的介面為:class bad_cast : public exception {public: bad_cast(const char * _Message = "bad cast"); bad_cast(const bad_cast &); virtual ~bad_cast();};以下程式碼封裝含失敗的
Time of Update: 2017-01-19
const_cast 運算子從類中移除 const、volatile 和 __unaligned 特性。文法const_cast < type-id > ( expression )備忘指向任何物件類型的指標或指向資料成員的指標可顯式轉換為完全相同的類型(const、volatile 和 __unaligned
Time of Update: 2017-01-19
dynamic_cast 運算子將運算元 expression 轉換成類型為type-id 的對象。文法dynamic_cast < type-id > ( expression )備忘type-id 必須是一個指標或引用到以前已定義的類類型的引用或“指向 void 的指標”。如果 type-id 是指標,則expression 的類型必須是指標,如果 type-id 是引用,則為左值。有關靜態和動態強制轉換之間區別的描述,以及各在什麼情況下適合使用,請參見 static_cast。
Time of Update: 2017-01-19
C++ 常量運算式常量值是指不會更改的值。C + + 提供了兩個關鍵字,它們使你能夠表達不打算修改對象的意圖,還可讓你實現該意圖。C++ 需要常量運算式(計算結果為常量的運算式)以便聲明: 數組邊界 case 語句中的選取器 位域長度規範 枚舉初始值設定項常量運算式中合法的唯一運算元是: 文本 枚舉常量 聲明為使用常量運算式初始化的常量的值 sizeof 運算式必須將非整型常量(顯式或隱式)轉換為常量運算式中合法的整型。因此,以下代碼是合法的:const double Size
Time of Update: 2017-01-19
主運算式主運算式是更複雜的運算式的構造塊。它們是文本、名稱以及範圍解析運算子 (::) 限定的名稱。主運算式可以具有以下任一形式: literalthis:: namename ( expression )literal 是常量主運算式。其類型取決於其規範的形式。this 關鍵字是指向類對象的指標。它在非靜態成員函數中可用,並指向為其調用函數的類的執行個體。 this 關鍵字只能在類成員函數體的外部使用。this 指標的類型是未特別修改 this 指標的函數中的 type
Time of Update: 2017-01-19
文法& cast-expression備忘一元 address-of 運算子 (&) 採用其運算元的地址。address-of 運算子的運算元可以是函數指示符,也可以是指定不是位域且不使用 register 儲存類說明符聲明的對象的左值。address-of 運算子僅適用於具有基本、結構、類或在檔案範圍層級聲明的等位型別的變數,或僅適用於下標數組引用。在這些運算式中,可在 address-of 運算式中添加或提取不包括 address-of
Time of Update: 2017-01-19
sizeof 運算子產生與 char 類型的大小有關的運算元大小。文法sizeof unary-expression sizeof ( type-name )備忘sizeof 運算子的結果為 size_t 類型,它是包含檔案 STDDEF.H 中定義的整數類型。利用此運算子,你可以避免在程式中指定依賴於電腦的資料大小。sizeof 的運算元可以是下列項之一:類型名稱。若要將 sizeof 用於類型名稱,則該名稱必須用括弧括起。一個運算式。當用於運算式時,無論是否使用括弧都可指定