社区
C语言
帖子详情
typedef Screen& (Screen::*Action)();
WhatCanIdoing
2002-11-09 11:12:41
typedef existing_type new_name
typedef Screen& (Screen::*Action)();
Screen 是类名
想知道上面那个是 existing_type (Screen&) ;那个是 new_name (Action)
(Screen::*Action)() 是什么意思 (这是我想知道的);特别是最后的 ()
...全文
84
8
打赏
收藏
typedef Screen& (Screen::*Action)();
typedef existing_type new_name typedef Screen& (Screen::*Action)(); Screen 是类名 想知道上面那个是 existing_type (Screen&) ;那个是 new_name (Action) (Screen::*Action)() 是什么意思 (这是我想知道的);特别是最后的 ()
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
quickball
2002-11-21
打赏
举报
回复
typedef Screen& (Screen::*Action)();
Action是一个指向Screen类的成员函数的函数指针。
Screen&被定义为对Action函数指针的引用类型。
boolean6199
2002-11-15
打赏
举报
回复
typedef的语法就是:typedef + declaration;
topikachu
2002-11-09
打赏
举报
回复
Action 是 new_name
Screen&(Screen::* )()是existing_type
教你个窍门
看typedef的时候,先把typedef去掉,把后面的看成是一个变量声明,比如
Screen& (Screen::*Action)();
这个看起来就清楚了,Action是一个Screen类的成员函数,它的参数是void,返回值是Screen&.
那么在typedef中Action就是一个Screen类的成员函数别名,这类成员函数参数是void,返回值是Screen&
ooper
2002-11-09
打赏
举报
回复
函数指针
cwanter
2002-11-09
打赏
举报
回复
应该是定义了一种新的类成员函数指针类型。别忘了typedef是定义类型的。
typedef Screen& (Screen::*Action)();
Action是新类型,它的类型是指向Screen类成员函数指针,成员函数应定义为
返回值为Screen&,参数为void.
typedef Screen& (Screen::*Action)();
class Screen
{
public:
Screen& func();
.....
};
Screen::func()
{
函数定义;
}
Action pfunc=Screen::func;
Screen screen;
(screen.*pfunc)();
leasun
2002-11-09
打赏
举报
回复
首先Action是一个指针(*),其次,这个指针指向一个Screen类的类成员(Scree::),然后这个类成员是一个函数(()),最后,这个函数返回一个Screen对象的引用。
Action是new_type,Screen& (Screen::* )()是existing_type
benbenhuhu
2002-11-09
打赏
举报
回复
up
detrox
2002-11-09
打赏
举报
回复
一个函数指针,它可以指向一个Screen类的函数
iOS自定义日期选择器
主要为大家详细介绍了iOS自定义日期选择器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
类的数据成员指针和成员函数指针
#include #include using namespace std; class
Screen
{ public: //
typedef
std::string::size_type index;
typedef
Screen
& (
Screen
::*
Action
F)();//函数指针 static
Action
F Menu[];//函数指针表
Screen
& home();
Screen
C++ primer 摘要《局部类、嵌套类、类域》20090127
===13.6.2 使用指向类成员的指针===int (
Screen
::*pmfi)() = &
Screen
::height;
Screen
& (
Screen
::*pmfS)( const
Screen
& ) = &
Screen
::copy;
Screen
my
Screen
, *buf
Screen
;// 直接调用成员函数if ( my
Screen
.height() == buf
Screen
->heig
C++primer知识点(五)(终结C++primer)
二十七: (1)异常使我们能将问题的检测和解决分离开来。 当匹配不到catch时,将调用标准库函数terminate(当异常没有被捕获) 异常对象:编译器使用异常抛出表达式来对异常对象进行拷贝初始化,因此throw表达式必须拥有完全类型(只是声明如class A;不是完全类型),如果是类类型的话,相应的类必须含有一个可访问的析构函数和一个可访问的拷贝或移动构造函数。 静态类型
37、C++ Primer 4th笔记,特殊工具与技术,类成员指针
1、成员指针(pointer to member)包含类的类型以及成员的类型。成员指针只应用于类的非static成员。static类成员不是任何对象的组成部分,所以不需要特殊语法来指向static成员,static成员指针是普通指针。通过指定函数的返回类型,形参表(类型和数目,是否为const)和所属类来定义成员函数的指针。 2、使用类成员的指针 类似于成员访问操作符 . 和 -&...
C语言
70,031
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章