类函数名转成int解决方法
类函数名转成int
请问,
class CTest
{
public:
void Fun()
{
int ps = (int)Fun;
}
};
这样编译器会报错,但是如果把函数写成static就不会,
class CTest
{
public:
static void Fun()
{
int ps = (int)Fun;
}
};
我大概猜到是类型转换不一样,但是具体原因是什么就不明白
------解决方案--------------------
是因为非静态类成员函数不存在隐式指针转换,而静态成员函数的类型是普通函数类型,存在隐式指针转换。
------解决方案--------------------
请问,
class CTest
{
public:
void Fun()
{
int ps = (int)Fun;
}
};
这样编译器会报错,但是如果把函数写成static就不会,
class CTest
{
public:
static void Fun()
{
int ps = (int)Fun;
}
};
我大概猜到是类型转换不一样,但是具体原因是什么就不明白
------解决方案--------------------
是因为非静态类成员函数不存在隐式指针转换,而静态成员函数的类型是普通函数类型,存在隐式指针转换。
------解决方案--------------------