class cp
public:
int print(int a, int b)
printf("cp print() a=%d, b=%d");
int print(int a, int b)
printf("print() a=%d, b=%d");
cp f &rf=f;
cp* pf;
bind(print, _1, _2)(10, 20); //ok
bind(&print, _1, _2)(10, 20); //ok
bind(cp::print, f, _1, _2)(10, 20); //error
bind(&cp::print, f, _1, _2)(10, 20); //ok
bind(&cp::print, rf, _1, _2)(10, 20); //ok
bind(&cp::print, pf, _1, _2)(10, 20); //ok
error原因:
cp::print必需要& 表明這是乙個成員函式指標
bind也可以繫結類的成員,用法同繫結成員函式,加&;
const與類成員函式
既然類的例項是個物件,那麼它也應該可以被 const 修飾。按照 const 的定義,const sampleclass foo const 與 sampleclass foo 並不是同樣的東西。簡單來說,foo const 不能被改變,顯然也就是它的字段不能被改變。那麼普通的物件 foo能做的事情...
C 類靜態成員與類靜態成員函式
當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...
C 類靜態成員與類靜態成員函式
當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...