首页 文章
  • 1 votes
     answers
     views

    VxWorks中的成员函数指针

    我正在为VxWorks应用程序编写C语言 . 由于VxWorks是基于C的,因此将函数指针作为参数的函数与C的成员函数指针不兼容 . 我有一个类( SomeClass ),它有30个成员函数实例化了几次,我希望能够传递给像 taskSpawn 这样的函数 . 我知道有两种方法可以实现,但我并不特别喜欢传统的解决方案: 使用静态函数调用特定对象上的C函数指针: static void CallF...
  • 43 votes
     answers
     views

    C继承和成员函数指针

    在C中,可以使用成员函数指针指向派生(甚至是基类)类成员吗? 编辑:也许一个例子会有所帮助 . 假设我们按继承顺序有三个类 X , Y , Z 的层次结构 . Y 因此具有基类 X 和派生类 Z . 现在我们可以为类 Y 定义一个成员函数指针 p . 这写成: void (Y::*p)(); (为简单起见,我'll assume we'只对带有签名 void f() 的函数感兴趣) 此指...
  • 9 votes
     answers
     views

    如何定义一般成员函数指针

    我创建了一个Timer类,当计时器到期时必须调用一个回调方法 . 目前我使用普通函数指针(它们被声明为void(*)(void),当Elapsed事件发生时,调用函数指针 . 是否可以使用也具有签名void(AnyClass :: *)(void)的成员函数执行相同的操作? 谢谢你的队友 . 编辑:此代码必须在Windows上以及在实时操作系统(VxWorks)上运行,因此不使用外部库会很棒 . ...
  • 3 votes
     answers
     views

    无法将'void(myClass :: *)()转换为void(*)()

    所以,我知道这个问题存在于很多地方 . 但是这些例子都没有帮助我解决我的问题 . 我正在尝试创建 method pointer (在一个类中),因此它将根据特定条件解决该类的几种方法之一 . 我试过,使用静态函数失败了(猜测我误解了说明怎么做......) . 这是头文件: class myClass { public: myClass(int value); void meth...
  • 0 votes
     answers
     views

    已经或将要C 14或C 1z使其不再未定义调用委托类成员函数指针?

    由于这个问题似乎引起了一些争论,我正在编辑它以首先用假设的语法显示意图,然后显示一个实现 . 该实现依赖于令人惊讶的类型转换,然后调用此类型的转换指针 . 问题是类型转换是标准的(虽然是非可移植的)C,但调用它的结果是未定义的行为 . 我的问题是关于标准是否最近或可能很快将调用类型转换成员函数指针的结果更改为不再是未定义的行为 . 目的是能够编写如下代码: void* object = ...; ...

热门问题