【问题标题】:Odd field in struct? c++结构中的奇数字段? C++
【发布时间】:2015-01-11 09:53:30
【问题描述】:

您好,我想知道是否有人可以向我解释结构中的一个字段,如下所示:

struct example {
void (SomeClass::*someMethod)();
};

这究竟是什么以及您将如何/为什么使用它?谢谢。

【问题讨论】:

标签: c++


【解决方案1】:

这个结构包含一个指针,指向一个返回类型为 void 且不带参数的函数。

我们会将此指针设置为实际函数的地址,并在一段时间后通过指针执行该函数。函数指针是非常方便的东西,可以根据情况提供不同的函数来处理某些任务。

【讨论】:

  • 为什么这个指向函数的指针在结构体中?将此指针封装在结构中的意义何在?如果没有封装指针的结构会不会一样?
  • 它看起来像一个指向方法/成员函数的指针,而不是普通函数。
【解决方案2】:
void (SomeClass::*someMethod)();

这是一个指向“SomeClass”类成员函数的指针的声明,它接受并返回void。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 2017-03-01
    • 2011-01-04
    • 1970-01-01
    • 2018-09-28
    相关资源
    最近更新 更多