1.實現虛擬建構函式和虛擬非成員函式
把真正的虛函式作為類的虛函式即可,其它構造或者非成員類封裝下即可。
2.實現單例模式
單例模式,用類函式內的靜態成員實現避免類的靜態成員一開始初始化,不能控制初始化的時機。
作為指標或者類函式內靜態成員可以控制類的初始化時機。
3.控制類的物件數量,不是很有必要
一般應用中很少需要控制的,如果需要 控制,通過在建構函式中限定數量即可,如果要做乙個通用的類,可用模板類來實現。
本類可以例項化模板類,也可以繼承自自己例項化的模板類。這樣的好處是充分提供泛型,而不用繼承自某個具體的基類,更加形象。
且這樣繼承可以用私有繼承,因此刪掉基類指標時候,只能呼叫子類的析構函式,避免了記憶體洩露。
4.要求或禁止在堆中產生物件
要求在堆中可以通過記憶體池存放物件過載operator new/delete形式得到,不要求在堆中私有化operator new/delete即可。
具體會遇到一些問題,除非編寫記憶體池,否則沒有必要這樣操作。
// templateclass.h
#pragma once
#include
using namespace std;
template
class singleton
return m_pinstance;
}singleton()
virtual ~singleton()
}private:
static t *m_pinstance;
};// 直接公有繼承即可,私有繼承把基類的所有非私有成員都作為私有成員,不能再繼承了,擴充套件性不好
class test: public/*private*/ singleton
~test()
//private: // 不能作為單例,外部 還是可以輕易呼叫test建構函式,不如用靜態指標或者規範單例模式來編寫
test()
};template t* singleton::m_pinstance = 0;
// templateclass.cpp
//#include "stdafx.h"
#include "templateclass.h"
test* test::getinstance()
void testfunc()
int _tmain(int argc, _tchar* argv)
c 技巧學習筆記 1
一,檔案結構 1 標頭檔案 用於存放程式的宣告.2 定義檔案 用於存放程式的實現.標頭檔案由三部分內容組成 1 標頭檔案開頭處的版權和版本宣告 參見示例1 1 2 預處理塊。3 函式和類結構宣告等。1 版權和版本的宣告版權和版本的宣告.位於定義檔案和宣告檔案的開頭.格式 規則1 2 1 為了防止標頭...
C 技巧總結 1
1.usecontrol頁面在使用的時候,是沒有showdialog功能的。2.列表在潘頓是否為空的時候可以直接判斷列表元素的數量是否為零。3.foreach迴圈遍歷的時候,要模擬這個迴圈完整的執行過程,在不容易出錯,否則容易出現邏輯錯誤。4.在例項乙個物件時,要確認是否有值 在例項化後,也要確定是...
C 小技巧筆記
一 乙個函式獲得容器中最大 最小值 方法 使用max element a,a n 此外min element a,a n 可以用來找最小的元素。以下只舉了陣列的例子,當然對vector string這樣的物件也是可以進行操作的,但這裡不再演示。include include using namesp...