原创 Effective C++ 43,44

43.明智地使用多繼承。 多繼承帶來了極大的複雜性。最基本的一條就是二義性。 當派生類爲多繼承時,其多個基類有同名的成員時,就會出現二義性。通常要明確其使用哪個成員的。顯式地限制修飾成員不僅很笨拙,而且會帶來限制。當顯式地用一個類名來修飾

原创 Effective C++ 18-23

18.爭取使類的接口完整並且最小。 類的用戶接口是指使用這個類的程序員所能訪問得到的接口,典型的接口裏只有函數存在,封裝好類的數據成員。 完整是指接口中包含所有 合理的操作的函數。最小是指函數儘可能少且功能不重複。 接口中的函數要少的原因

原创 WIN32_LEAN_AND_MEAN

Windows.h中是如此寫的: #ifndef WIN32_LEAN_AND_MEAN #include <cderr.h> #include <dde.h> #include <ddeml.h> #include <dlgs.h>

原创 全排列與字典序排列

首先,全排列是一個比較簡單的問題,但我卻沒有真正的去實現過全排列。 讓我獨自思考全排列的話,如將 “ abcd“ 進行全排列,這種簡單的全排列也能將我難住,因爲真的沒有考慮過這種問題。思考了一會,我只能給出以下比較麻煩的算法: //字符

原创 設計模式的C++實現 1.單例模式

單例模式即實現單例類,即系統中一個類只有一個實例,而且該實例易於外界訪問。這樣方便對實例個數進行控制並節約系統資源。 而單例常用與一些非局部靜態對象,對於這些對象,程序難以控制,對於這些存在與全局,且一般持久存在的對象,有時需要按照一定約

原创 Effective C++ 24,25

24.在函數重載和設定參數缺省值間要慎重選擇。 獲得一種類型的數據的最小值或最大值,對於c中,一般使用在<linits.h>中定義的各種宏如INT_MIN 來進行表示,但是這樣無法進行泛型編程,即對應如何一種類型T返回對應類型的最小或最大

原创 Effective C++ 45-48

45。弄清c++在幕後爲你所寫,所調用的函數。 如果設置一個空類,c++編譯器會聲明以下函數:拷貝構造函數,賦值運算符,析構函數,一對取地址運算符函數(const和非const)。而如果你沒有聲明任何構造函數的話,編譯器會爲你聲明一個缺省

原创 設計模式的C++實現 3.抽象工廠

簡單工廠模式和工廠模式 要求 同一類型的產品子類擁有共同的方法,這限制了產品子類的擴展。抽象工廠可以向客戶端提供一個接口,是客戶端在不必指定產品的具體情況下,創建多個產品族中的產品對象。抽象工廠中將同一類的產品子類歸爲一類,讓它們繼承同一

原创 OC對象與Core Foundation對象的轉換

OC對象使用了ARC,自動釋放內存,但是CF中的對象沒有ARC,必須要手動進行引用計數和內存釋放. 兩者對象之間的互相轉換有三種形式: 1.__bridge: 直接轉換,部改變對象的持有狀況: id obj = [NSObject new

原创 Effective OC : 1-5

1,瞭解Objective-C語言的起源: OC爲C語言的超集,爲C添加了面向對象的特性。 要理解C中的指針和內存模型。 2.在類文件中儘量少引入其他頭文件: 引入過多頭文件,將藉口暴露,增加耦合度,這顯然是不可取的。 對於一個類B的聲

原创 MXBridge - 插件式JS與OC交互框架

概述 MXBridge,提供一個插件式的JavaScript與Objective-C交互的框架,通過JavaScriptCore實現,插件式擴展Obejctive-C接口以供JavaScript調用. 前往Github查看 主要的類 大致

原创 java 多線程中的 wait 和 notify

wait和notify是通過對對象進行鎖,來實現同步和互斥。 wait和notify函數需要在一段的同步代碼中,即在 synchronized的代碼段中。 簡單的示例代碼。 static class TestThread { pu

原创 ATL 調用COM對象

創建完COM對象後,接下來是如何調用COM組件了。這裏是在c++中的調用COM對象的方法。 創建COM對象一般有三種方法,正常創建一個對象,使用CoCreateInstance函數。若在遠程系統中創建一個對象,使用CoCreateInst

原创 創建Windows類

Windows中窗口,控件,對話框實質上都是窗口,Windows類是一種Windows可以處理的窗口類型描述。在Windows中有大量預定義的Windows類,但是也可以方便的創建自己的Windows類。

原创 3D遊戲引擎〇 開始

遊戲循環: 初始化:執行一些基本的初始化操作,如內存分配,資源獲取,從磁盤加載數據等。 進入遊戲循環:進入主遊戲循環,用戶不斷地執行動作,知道退出主循環爲止。 讀取玩家輸入:處理玩家輸入,或將其存儲到緩存區中,供AI和遊戲邏輯使用。 執行