首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

类函数名转成int解决方法

2012-04-12 
类函数名转成int请问,class CTest{public: void Fun(){int ps (int)Fun}}这样编译器会报错,但是如果把

类函数名转成int
请问,
class CTest
{
public:
void Fun()
{
int ps = (int)Fun;
}
};

这样编译器会报错,但是如果把函数写成static就不会,
class CTest
{
public:
static void Fun()
{
int ps = (int)Fun;
}
};

我大概猜到是类型转换不一样,但是具体原因是什么就不明白

[解决办法]
是因为非静态类成员函数不存在隐式指针转换,而静态成员函数的类型是普通函数类型,存在隐式指针转换。
[解决办法]

探讨

引用:
是因为非静态类成员函数不存在隐式指针转换,而静态成员函数的类型是普通函数类型,存在隐式指针转换。

补充一下,就算用&运算对成员函数做取地址操作,得到的成员函数指针依然是不可以转换成int类型的.

(int)&Test::fun;//erro

热点排行