re: 函數(shù)指針實(shí)例 夢在天涯 2008-05-23 14:14
another samples:
#include "stdafx.h"
class Object;
typedef int (Object::*MemFuncPtr)(int, int);
typedef int (*StaticMemFuncPtr)(int, int);
class Object
{
public:
// non-static member
int Add(int iFirst, int iSecond)
{
return iFirst + iSecond;
}
// static member
static int Sub(int iFirst, int iSecond)
{
return iFirst - iSecond;
}
//
typedef int (Object::*InClassMemFuncPtr)(int, int);
typedef int (*InClassStaticMemFuncPtr)(int, int);
};
int _tmain(int argc, _TCHAR* argv[])
{
// Test non-static Add
//
MemFuncPtr pfnMemFunc = &Object::Add;
// Need to bind the member function to a instance (need a this pointer)
Object test;
int res = (test.*pfnMemFunc)(1, 3);
// function call missing argument list; use '&Object::Add' to create a pointer to member
//MemFuncPtr pfnMemFunc1 = test.Add;
//res = (test.*pfnMemFunc1)(1, 3);
Object::InClassMemFuncPtr pfnMemFunc2 = &Object::Add;
res = (test.*pfnMemFunc2)(1, 3);
// Test Static Sub
//
// cannot convert from 'int (__cdecl *)(int,int)' to 'MemFuncPtr'
// Object::Sub Calling convention is __cdecl, but Object::*MemFuncPtr should be thisCall
// function signature include calling convention, parameter list and return value..
//pfnMemFunc = Object::Sub;
//res = (test.*pfnMemFunc)(1, 3);
StaticMemFuncPtr pfnStaticMemFunc = Object::Sub;
res = (*pfnStaticMemFunc)(1, 3);
StaticMemFuncPtr pfnStaticMemFunc1 = &Object::Sub;
res = (*pfnStaticMemFunc1)(1, 3);
Object::InClassStaticMemFuncPtr pfnStaticMemFunc2 = &Object::Sub;
res = (*pfnStaticMemFunc2)(1, 3);
// stl ? how to use this “function pointer”???
//std::mem_fun<int, Object>(&Object::Add);
//std::mem_fun<int, Object>(&Object::Sub);
return 0;
}
re: 函數(shù)指針實(shí)例 夢在天涯 2008-05-23 12:33
成員函數(shù)指針:
#include "stdafx.h"
class CMemFuncPtr;
typedef int (CMemFuncPtr::*MemFuncPtr)(int, int);
class CMemFuncPtr
{
public:
int Add(int iFirst, int iSecond)
{
return iFirst + iSecond;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
MemFuncPtr pfnMemFunc = &CMemFuncPtr::Add;
CMemFuncPtr test;
(test.*pfnMemFunc)(1, 3);
return 0;
}
re: 服務(wù)器遷移預(yù)告 夢在天涯 2008-05-19 09:46
恩,現(xiàn)在的速度超快 啊,感謝dudu!
@張某某
就想一般的函數(shù)重載一樣啊,你沒有重載那個版本的,你就不能用哦!
haha,這個targetver.h只有在08才有的把!
re: 試試看博客園的blog~ 夢在天涯 2008-04-29 17:59
haha ,csdn slow!
非常同意,學(xué)習(xí)了C++,其他的easy!
haha,現(xiàn)在的工作用C+++C#,覺得這連個可以了應(yīng)該吃飯沒有問題把!
因?yàn)閞esult編譯器不知道是static變量還是類型,所以必須要typename來申明是類型!
Modern C++ design有點(diǎn)高深哦!共同研究,共同進(jìn)步哦!非常感謝分享!
還有可以通過CLI的封裝,可以看我的blog上有些資料啊!
re: Vector用法 夢在天涯 2008-04-16 16:30
歡迎來到C++ blog!
以后多交流問題!
re: C++、VC-迷茫 夢在天涯 2008-04-16 15:01
看工作需要了,不過據(jù)統(tǒng)計現(xiàn)在用java的最多啊,但是學(xué)的人多了,工資不一定是最高的哦!
re: 兩個小巧的開源解析庫 夢在天涯 2008-04-16 14:59
以前用的tinyxml還挺好用的啊!~也很小!
re: 如何閱讀、使用Blog? 夢在天涯 2008-04-16 09:14
我現(xiàn)在用www.inezha.com也很方便!
沒有更新會自動發(fā)到我的msn上,一點(diǎn)就搞定可!
re: vc ++ 如何做界面開發(fā)? 夢在天涯 2008-04-16 09:12
也可以用。net開發(fā)界面,也很方便!
re: 單元測試PPT講義 夢在天涯 2008-04-09 09:19
修改代碼的藝術(shù),確實(shí)是藝術(shù)!
單元測試,難的是正真的在項(xiàng)目中實(shí)行!
re: 本次服務(wù)端搬平臺的一些體會。 夢在天涯 2008-04-09 09:14
高深啊!
一直沒有編過,今天看lz說的這么仔細(xì),太好了,以后有機(jī)會一定一試啊!
re: 猜猜看,id變成9了嗎? 夢在天涯 2008-04-02 10:02
((TestStr)(*p_ts)).SetId(9); //編譯通過
((TestStr)(*p_ts)).id = 9; //編譯不通過
(&((TestStr)(*p_ts)))->id = 9; //編譯通過
我在VS2005下:
正如作者所說中間的是編不過的,error,說是l-value不能賦值。
但是能編過的2個結(jié)果都還是1,沒有修改了原來的值,因?yàn)樵陬愋娃D(zhuǎn)化的時候都調(diào)用了拷貝構(gòu)造函數(shù),從新生成一個對象你修改的是拷貝后的臨時對象。(你可以寫拷貝構(gòu)造函數(shù)測試一下)
所以同意:
這其實(shí)相當(dāng)于調(diào)用了TestStr(const TestStr&)生成了一個TestStr&的臨時變量。
C++標(biāo)準(zhǔn)規(guī)定,類性轉(zhuǎn)換表達(dá)式的目標(biāo)類型為引用時,結(jié)果為l-value;否則為r-value。
re: 搭建通用構(gòu)造器 夢在天涯 2008-04-01 09:05
有新意!
可能是寫的過程中有錯,所以你要flash一下io或重設(shè)io的狀態(tài)!
re: 工作Blog 夢在天涯 2008-03-21 13:00
歡迎加入大家庭!
functor 確實(shí)是比STL中的一大堆好用多了!統(tǒng)一!
re: GCC4.3... 夢在天涯 2008-03-14 11:42
GCC4.3中帶有c++ox嗎,那我也下個啊,vs的話要等到vs2008了
re: 賣書 夢在天涯 2008-02-18 17:09
我也有一個C#primer 和C#設(shè)計模式,有誰要的話也聯(lián)系我啊!我的2本都半價。
re: 賣書 夢在天涯 2008-02-18 17:08
a ,超多啊!羨慕啊!
re: 原來愛,曾經(jīng)距離我這么近 夢在天涯 2008-02-03 11:09
魅力,美麗人生啊!
re: 暈啦,發(fā)生在我身邊的 夢在天涯 2008-02-03 11:08
哈哈,
re: 好又多刷卡奇遇記 夢在天涯 2008-02-03 11:05
那最后確定了嗎,真的是多刷了嗎,真可怕啊!
所以以后刷卡呀一定要在旁邊看著啊!
re: 打算做一個開源的矢量繪圖軟件 夢在天涯 2008-01-30 11:37
堅(jiān)持!