筆記C 技巧1

2021-07-02 01:12:03 字數 1308 閱讀 1654

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...