VS2005编译器的一点改进 之 函数指针

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

class CInsLibrary

{

public:

CInsLibrary(){;}

virtual ~CInsLibrary(){;}

public:

void Func(int i){;}

};

typedef void (CInsLibrary::*PFUNC)(int );

//main.cpp

PFUNC pp = CInsLibrary::Func; //1)

CInsLibrary* pLib = new CInsLibrary;

PFUNC ppp = (pLib->Func); //2)

ASSERT(pp == ppp); //caution!!

上面的代码在VC6中编译的很好,但是在VS2005中,

1)必须改为

PFUNC pp = &CInsLibrary::Func; 否则就是Compiler Error C3867

2)中的这种写法,VS2005已经不支持了。因为的确,指向成员函数的指针,更合理的写法是class::foo而不是object.foo

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航