社区
C++ 语言
帖子详情
>>神鬼传奇C++<< 之对象中的函数指针转换?
tgtt
2003-08-24 12:19:00
class C
{
public:
void (*ptst)();
void st();
};
void kk();
void (*ptkk)();
void main(){
ptkk=&kk;//这儿可以
C temp;
temp.ptst=&(temp.st);//为什么这儿就不行了呢?
}
...全文
43
9
打赏
收藏
>>神鬼传奇C++<< 之对象中的函数指针转换?
class C { public: void (*ptst)(); void st(); }; void kk(); void (*ptkk)(); void main(){ ptkk=&kk;//这儿可以 C temp; temp.ptst=&(temp.st);//为什么这儿就不行了呢? }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
widewave
2003-08-24
打赏
举报
回复
搞成静态的,不要 this指针试试。
tgtt
2003-08-24
打赏
举报
回复
哦,那怎么样才能达到转换的目的呢?
class C
{
public:
C(void){
ptst=&st;//这样也不行
}
void (*ptst)();
void st();
};
晨星
2003-08-24
打赏
举报
回复
因为是两个默认的东西你看不到。
void kk();
其实是
void __cdecl kk();
而
void C::st();
实质上是:
void _thiscall C::st();
逻辑上后者比前者多一个参数(this指针),所以不能相互转换。
fengfeng2003
2003-08-24
打赏
举报
回复
多谢 lifanxi(Byron)
lifanxi
2003-08-24
打赏
举报
回复
举个例子:
class A
{
public:
void f() {};
void g() {};
};
int main()
{
void (A::*pf)();
pf = &A::f;
A a;
(a.*pf)(); //相当于a.f();
pf = &A::g;
(a.*pf)(); //相当于a.g();
}
请先理解这个例子,然后就可以推出上面的正确调用方法应该是:
(temp.*temp.ptst)();
或者更清楚一点:
(temp.*(temp.ptst))();
fengfeng2003
2003-08-24
打赏
举报
回复
上面的程序虽然能完成赋值,但如何调用呢?
谁能解释一下
temp.ptst();//error
temp.C::ptst();//error
到底该怎么办!!!
fengfeng2003
2003-08-24
打赏
举报
回复
class C
{
public:
void (C::*ptst)();
void st();
};
void kk();
void (*ptkk)();
void main(){
ptkk=&kk;//这儿可以
C temp;
temp.ptst=C::st;//OK!!!!!
}
ckacka
2003-08-24
打赏
举报
回复
这个标题好炫哦~~
wbh0360
2003-08-24
打赏
举报
回复
steedhorse(晨星)兄说的极是,
这关系到编译器低层的行为,参数的压站等。
基于YOLOv5工地上安全帽佩戴的检测源码+训练好模型+数据集.zip
YOLO高分设计资源源码,详情请查看资源内容
中
使用说明 YOLO高分设计资源源码,详情请查看资源内容
中
使用说明 YOLO高分设计资源源码,详情请查看资源内容
中
使用说明 YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明YOLO高分设计资源源码,详情请查看资源内容
中
使用说明
2011管理类联考199综合能力全国硕士研究生招生考试解析.pdf
考研管理类联考综合能力答案解析,考研真题,考研历年真题,考研管理类联考历年真题,真题解析。
NIUCLOUD-ADMIN 是一款快速开发SaaS通用管理系统后台框架.zip
springboot框架 一、Spring Boot基础应用 Spring Boot特征 概念: 约定优于配置,简单来说就是你所期待的配置与约定的配置一致,那么就可以不做任何配置,约定不符合期待时才需要对约定进行替换配置。 特征: 1. SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖
中
,这样就可以一次性添加到项目的Maven或Gradle构建
中
。 2,使编码变得简单,SpringBoot采用 JavaConfig的方式对Spring进行配置,并且提供了大量的注解,极大的提高了工作效率,比如@Configuration和@bean注解结合,基于@Configuration完成类扫描,基于@bean注解把返回值注入IOC容器。 3.自动配置:SpringBoot的自动配置特性利用了Spring对条件化配置的支持,合理地推测应用所需的bean并自动化配置他们。 4.使部署变得简单,SpringBoot内置了三种Servlet容器,Tomcat,Jetty,undertow.我们只需要一个Java的运行环境就可以跑SpringBoot的项目了
2024-2030全球及
中
国冷冻有机毛豆行业研究及十五五规划分析报告.docx
2024-2030全球及
中
国冷冻有机毛豆行业研究及十五五规划分析报告
SpringBoo车险理赔源码.rar
SpringBoo车险理赔源码.rarSpringBoo车险理赔源码.rarSpringBoo车险理赔源码.rar
C++ 语言
64,646
社区成员
250,481
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章