当前位置:  技术问答>linux和unix

书上的范例C程序,我改造成C++程序怎么编译不通过?请指点!

    来源: 互联网  发布时间:2015-01-14

    本文导语:  源C程序,编译没有问题: #include  #include  #include  void ouch(int sig) {   printf("OUCH! - I got signal %dn",sig); } int main() { struct sigaction act; act.sa_handler=ouch; sigemptyset(&act.sa_mask); act.sa_flags=0; sigaction(SIGINT,&act,0); while(1) { ...

源C程序,编译没有问题:
#include 
#include 
#include 
void ouch(int sig)
{
  printf("OUCH! - I got signal %dn",sig);
}
int main()
{
struct sigaction act;
act.sa_handler=ouch;
sigemptyset(&act.sa_mask);
act.sa_flags=0;
sigaction(SIGINT,&act,0);
while(1)
{
printf("hello wordn");
sleep(1);
}

}
我改造的C++程序testsignal.h和testsignal.cpp
testsignal.h:
#include 
#include 
#include 
class test
{
 public:
void ouch(int sig);
};

testsignal.cpp:
#include "testsignal.h"
main()
{
test test1;
struct sigaction act;
act.sa_handler=test1.ouch;    ----这里编译时有问题,不解
sigemptyset(&act.sa_mask);
act.sa_flags=0;
sigaction(SIGINT,&act,0);
while(1)
{
printf("hello wordn");
sleep(1);
}

}
void test::ouch(int sig)
{
  printf("OUCH! - I got signal %dn",sig);
}

编译g++ -c testsignal.cpp 
报错:
testsignal.cpp:In function 'int main()';
testsignal.cpp:7:no matches converting function 'ouch' to type 'void (*) (int)'
testsignal.h:7:candidates are: void test::ouch(int)


请大家帮忙!! 

|
上面这位 这句话当然有意义 看看ipc吧 这个问题我猜是和c/c++编译方式不同有关系 至少windows下面编译的类传递函数的时候是虚表加偏移的 直接想传地址有问题
你必须强行的表明这是取得函数的地址才行啊 用函数指或是取地址吧
不过这叫c++程序吗?毕竟c++不提倡使用地址访问的 如果想写一个c++来代替这段代码 你需要封装sigaction act才比较像样吧

|
C++是强类型检查,不允许这样的转化,C是弱类型的,对这个问题给warning.

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求解jbuilder5 运行自带的jsp范例出错的问题?
  • Linux命令、编辑器与Shell编程 和 UNIX SHELL范例精解(第4版) 区别大么?
  • C# Dictionary操作范例(入门新手参考)
  • 用sql脚本创建sqlserver数据库触发器范例语句
  • 常用正则表达式范例 方便表单验证
  • 新手求用QT写的范例
  • 用sql脚本创建sqlserver数据库范例语句
  • C#中Timer的简单范例(System.Windows.Forms.Timer)
  • Asp.net GridView控件使用常用范例
  • 最强之dos命令 - "FOR" - 高级应用范例
  • PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
  • 《JAVA核心技术》范例中的问题请教
  • Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解
  • Python正则表达式的七个使用范例详解
  • Python正则表达式的使用范例详解
  • C# 图片加水印与生成缩略图的代码范例
  • GridView 新增、删除及编辑范例代码
  • GridView 主从表编辑与新增范例代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3