1、錯誤示例
將仿函式類的資料和/或多型移到另乙個類中,然後給你的仿函式乙個指向這個新類的指標。比如,你想建立
乙個包含很多資料的多型仿函式類。
templateclass bpfc : public unary_function;
2、正確示例
建立乙個包含指向實現類的指標的小而單態的類,然後把所有資料和虛函式放到實現類:
template// 用於修改的bpfc的新實現類
class bpfcimpl : public unary_function;
templateclass bpfc : public unary_function
};
bpfc::operator()的實現例證了bpfc所有的虛函式是怎麼實現的:它們呼叫了在bpfcimpl中它們真的虛函式。結果是仿函式類(bpfc)是小而單態的,但可以訪問大量狀態而且行為多型。
這個技術在《effective c++》的條款34中有。在gamma等的《設計模式》中,這叫做「bridge模式」。sutter在他的《exceptional c++》中叫它「pimpl慣用法」。
Bundle類用於傳遞值
android中bundle類的作用 bundle類用作攜帶資料,它類似於 map,用於存放 key value 名值對形式的值。相對於 map,它提供了各種常用型別的 put get 方法,如 putstring getstring 和putint getint put 用於往bundle 物件放...
指標用於將函式中形參的值傳遞給實參
void get value 2 unsigned int data0,unsigned int data1 buf中資料長度 unsignedshort buf len 0 buf資料中值的位數 unsignedshort buf data len 0 unsignedshort buf data...
操作符過載應該設計成類成員函式還是普通非成員函式?
四小點 1.這四個操作符過載必須定義為類成員函式。2.復合賦值操作符過載通常應定義為類成員函式。復合賦值操作符如 等。但是不一定得這麼做。3.改變物件狀態或者與給定物件聯絡緊密的操作符,如 等,通常定義為類成員函式。4.對稱操作符,如算術,相等,關係,位操作符,最好定義成普通非成員函式。下面是自己n...