Time of Update: 2018-07-25
(一)函數模板的概念1--假設要編寫一個函數對兩個參數求和。實際編程中,我們可能希望定義幾個這樣的函數,每一個都可以對一種 給定類型的值求和,那麼,可能自然會想到使用重載函數.例如: int add(int a,int b) { return a+b; } double add(double a,double b) { return a+b; } char add(char a,char b) { return a+b;
Time of Update: 2018-07-25
typename template 成員模板 模板的模板 模板的模板 的實參匹配 本文繼續深入探討模板的基礎知識,covers 內容如下: 關鍵字typename的另一種用法 將成員函數和嵌套類也定義成模板 模板的模板參數(template template parameters) typename
Time of Update: 2018-07-25
今天,同事詢問一個關於程式中的引用與效率問題,姑且簡單解釋如下: 1. 引用:變數的一個純粹的別名;不像java中的引用,java中的引用更像是limited指標; 2. 利用引用傳遞參數,能避免調用類拷貝建構函式的開銷;同理,返回對象的引用,也能避免一次拷貝建構函式調用開銷; 當然,返回的是非局部變數的引用,提防局部變數析構所引起的不安全; 3. 何時調用賦值建構函式,何時調用拷貝建構函式。 賦值建構函式是針對已經定義的對象來調用的;
Time of Update: 2018-07-25
C++11中using關鍵字的主要作用是:為一個模板庫定義一個別名。 文章連結:衍生類別中使用using別名改變基類成員的存取權限 一、《Effective Modern C++》裡有比較完整的解釋 各個作用 /*定義別名*/ template<class T> using Tlist = std::list<T>; using Tlist = std::list<char>; Tlist
Time of Update: 2018-07-25
1)switch語句中的條件必須是整型(即bool、int、 long和char等)、枚舉類型或者是類類型。如果條件是類類型的,則該類必須具有一個將類類型轉換成整型或枚舉類型的類型轉換函式(具有單個參數的建構函式被用作將參數類型轉換為該類類型的轉換函式)。 2)extern保留字表示變數的引用性聲明,即使用在其它範圍上聲明的變數。 3)using namespace std; 是把在std範圍中的標識符的範圍擴充到using語識破所在的範圍中(從該語句開始,直至包含該語句的範圍末尾)。
Time of Update: 2018-07-25
範例程式碼: //============================================================================// Name : cpp.cpp// Author : weijl// Version :// Copyright : Your copyright notice// Description : Hello World in C++, Ansi-style//===========
Time of Update: 2018-07-25
在大型工程中,如何避免標頭檔中過多的包含其他類的標頭檔,從而引起編譯時間劇增,強依賴性。 即:在標頭檔中,利用類的前向聲明,而不是直接包含類的定義標頭檔; c++編譯器在編譯的時候需要確定符號的大小,所以類前向聲明對於類指標,類引用,類形參和傳回值,見效; 但是,對於成員變數,則不能利用前向聲明去定義,因為確定不了成員大小,切記。
Time of Update: 2018-07-25
const可以改善程式的健壯性 基礎 int b=500;【1】const int* a=&b;【2】int const *a=&b;【3】int* const a=&b;【4】const int* const a=&b; 如果const位於*的左邊,則const用來修飾指標所指向的變數; 如果const位於*的右邊,則const用來修飾指標本身。 因此【1】【2】不允許對內容進行修改。 【3】指標不允許改變
Time of Update: 2018-07-25
54)函數重載和類屬機制所實現的叫做編譯時間多態;運行時多態指的是基類中定義虛函數,在衍生類別中對該虛函數進行重定義,要通過基類指標(或基類引用)來調用虛函數; 55)除了建構函式之外,任意非static成員函數都可以根據需要設計為虛函數。 56)當指標調用類的虛函數時,指標是動態綁定所指向的類的對象(基類或者衍生類別)。 57)通過基類引用調用虛函數同樣也採用動態綁定。例如:void printIdentity( Base& obj);
Time of Update: 2018-07-25
1.const int *p 就是所謂的“指向常量的指標”。這裡注意,所謂“指向常量”只是這個指標的“一廂情願”,只是一種效果上的等價。事實上,const int *p=&a;a既可以是常量(const int a=10;)又可以是變數(int
Time of Update: 2018-07-25
單鏈表的反轉可以使用迴圈,也可以使用遞迴的方式 1.迴圈反轉單鏈表 迴圈的方法中,使用pre指向前一個結點,cur指向當前結點,每次把cur->next指向pre即可。 代碼: # include <iostream># include <cstdlib>using namespace std;struct linkNode{int val;linkNode *next;linkNode(int x)
Time of Update: 2018-07-25
1. static 變數 靜態變數的類型 說明符是static。 靜態變數當然是屬於靜態儲存方式,但是屬於靜態儲存方式的量不一定就是靜態變數。 例如外部變數雖屬於靜態 儲存方式,但不一定是靜態變數,必須由 static加以定義後才能成為靜態外部變數,或稱靜態全域變數。 2. 靜態局部變數 靜態局部變數屬於靜態儲存方式,它具有以下特點: (1)靜態局部變數在函數內定義
Time of Update: 2018-07-25
關於C++中函數指標的使用(包含對typedef用法的討論) (一)簡單的函數指標的應用。 //形式1:傳回型別(*函數名)(參數表) char (*pFun)(int); char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2); } 第一行定義了一個指標變數pFun。首先我們根據前面提到的“形式1”認識到它是一個指向某種函數的指標,
Time of Update: 2018-07-25
來源:百度知道 《C++標準函數庫》中說的 有三個函數可以將字串的內容轉換為字元數組和C—string 1.data(),返回沒有”/0“的字串數組 2,c_str(),返回有”/0“的字串數組 3,copy() .................................................................int 轉 CString:CString.Format("%d",int);.......................
Time of Update: 2018-07-25
C# IME
Time of Update: 2018-07-25
0.行列,寬度自適應,加編號,背景色。 grid.Columns.Add("ID", "ID"); grid.Columns["ID"].DisplayIndex = 0; for (int i = 0; i < grid.Rows.Count;
Time of Update: 2018-07-25
轉載自:http://www.cnblogs.com/nzbbody/p/3504199.html int本身也要用一串字元表示,前後沒有雙引號,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進位(dec)來解釋,如果想用8進位,16進位,怎麼辦。加上首碼,告訴編譯器按照不同進位去解釋。8進位(oct)---首碼加0,16進位(hex)---首碼加0x或者0X。string前後加上雙引號,告訴編譯器把它當成一串字元來解釋。 int轉化為string
Time of Update: 2018-07-25
#if vs. if 條件編譯是C語言中預先處理部分的內容,它是編譯器編譯代碼時最先處理的部分, 條件編譯裡面有判斷語句,比如 #if 、#else 、#elif 及 #endif 它的意思是如果宏條件符合,編譯器就編譯這段代碼,否則,編譯器就忽略這段代碼而不編譯,如 #define A 0 //把A定義為0#if (A > 1) printf("A > 1"); //編譯器沒有編譯該語句,該語句不產生彙編代碼#elif
Time of Update: 2018-07-25
宏的單行定義 #define A(x) T_##x #define B(x) #@x #define C(x) #x 我們假設:x=1,則有: A(1)------〉T_1 B(1)------〉 '1 ' C(1)------〉 "1 " .如何定義宏、取消宏 //定義宏 #
Time of Update: 2018-07-25
string first_show = "\=========================================\n\= =\n\= || ====== ====== =\n\= || || || =\n\= || ====== || =\n\=