c++类中使用signal函数
发布日期:2021-09-12 06:44:49
浏览次数:2
分类:技术文章
本文共 544 字,大约阅读时间需要 1 分钟。
例子如下:
using namespace std;class test{public: void a() { while ( 1 ) signal( SIGINT, change ); } void change( int sag ) { cout << "here\n"; }};int main(){ test t; t.a();}
这样会报错
error: invalid use of non-static member function
因为signal的函数原型:
void (*signal(int signo , void (*func)(int)))(int);
signo:表示需要处理的信号;
func:是一个指向void funciont(int)类型的函数指针; 返回值:返回值是一个指向void function(int)类型的函数指针。而调用类中的成员函数隐含了函数前的this指针,所以这样就会造成参数不匹配。
解决方法是: 1.把change()声明成静态函数,静态函数不适用this指针作为隐含参数 2.使用友元函数,这样既能访问类的成员自身又不是类的成员转载地址:https://blog.csdn.net/weixin_36888577/article/details/79532009 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月03日 21时13分59秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java MyBatis(2)--- generatorConfig.xml详解与运行
2019-04-27
VueJS(5)---初步练习(5题)
2019-04-27
mysql(3)-- 修改root密码命令小结
2019-04-27
JQuery(3)--冒泡效果
2019-04-27
异常(2)-- UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/项目包名
2019-04-27
Android软键盘(1)---输入法界面管理(打开/关闭/状态获取)
2019-04-27
Android动态设置view的高度宽度
2019-04-27
css3 属性 text-overflow 实现截取多余文字内容 以省略号来代替多余内容
2019-04-27
vue 事件总线EventBus的概念、使用以及注意点
2019-04-27
JavaScript 用七种方式教你判断一个变量是否为数组类型
2019-04-27
黄家懿:河北高校邀请赛 -- 二手车交易价格预测决赛答辩
2019-04-27
如何利用pyecharts绘制酷炫的桑基图?
2019-04-27
王朝阳:河北高校邀请赛 -- 二手车交易价格预测决赛答辩
2019-04-27
Scratch等级考试(二级)模拟题
2019-04-27
如何在Jupyter Lab中显示pyecharts的图形?
2019-04-27
什么是Python之禅?
2019-04-27
【青少年编程】【Scratch】01 运动模块
2019-04-27
json的序列化与反序列化
2019-04-27
【第16周复盘】学习的飞轮
2019-04-27