设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
c++关于typedef
返回列表
发新帖
c++关于typedef
[复制链接]
11
|
3
|
2009-3-23 19:27:11
|
显示全部楼层
|
阅读模式
#include
class MyClass
{
private:
int m_Number;
int Add(int i)
{
return m_Number +=i;
}
int Sub(int i)
{
return m_Number -=i;
}
int Mul(int i)
{
return m_Number*=i;
}
/********found********/
typedef int (MyClass::*FUN)(int);
/********found********/
FUN fun[3];
public:
MyClass()
{
fun[0] = MyClass::Add;
fun[1] = MyClass::Sub;
fun[2] = MyClass::Mul;
m_Number = 0;
}
int CallFun(int i,int j)
{
/********found********/
return (this->*fun
)(j);
}
};
void main()
{
MyClass obj;
cout<<obj.CallFun(0,5)<<endl;
cout<<obj.CallFun(1,2)<<endl;
cout<<obj.CallFun(2,3)<<endl;
}
谁能给我解释一下/********found********/
typedef int (MyClass::*FUN)(int);
把int定义成什么了?
回复
使用道具
举报
千问
|
2009-3-23 19:27:11
|
显示全部楼层
typedef int (MyClass::*FUN)(int); 这里是定义函数指针,这个函数必须带一个参数,必须返回一个整型值,比如这里有个函数是这样的:int add(int a){a++;return a;}我们定义函数指针变量FUN fun; 下面我们就可以给函数指针变量赋值,fun = add; 这样它就会自动执行add函数体!...
回复
使用道具
举报
千问
|
2009-3-23 19:27:11
|
显示全部楼层
这不是将 int 取别名这是定义一个函数指针这个函数的原型是MyClass::函数名 (int);即它是 MyClass 的成员函数,同时带有一个 int 的形参可以通过 FUN 指向 原型相同 但是名字不同的函数来调用这些函数类似于FUN = 某函数的地址,调用 (*FUN)(30);...
回复
使用道具
举报
千问
|
2009-3-23 19:27:11
|
显示全部楼层
函数指针...
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行