2015年10月28日 星期三

Smart_Ptr 的注意事項

Smart_Ptr 對包裹的對象採取隱性轉型的方式,使用有它的方便性,但也有它的危險性,用一個例子來說:

class A:public cxxlObject;
void f(const Smart_Ptr<A> &A_Arg);

A *pA = new A;
f(pA);

Smart_Ptr<A> 的建構子會隱性的接收 pA,而自動產生 Smart_Ptr<A> 實例傳給 f(),若 f() 的實作並未使用 Smart_Ptr<A> 保存,由 f() 返回時就會把 pA 刪掉。解決的辦法就是儘早先將 pA 先放入 Smart_Ptr:

多國語言插件

適用於 CxxlMan2 程式庫的插件,可輕鬆為你開發的程式擁有多國語言的能力。
內含使用說明及範例,下載點:

cxxlMutiLang_Src_20221014.zip (支援 CMRegSelf)