【问题标题】:Initialize static Array of functions with NULL values使用 NULL 值初始化函数的静态数组
【发布时间】:2013-03-21 07:33:13
【问题描述】:

我有以下课程:

class A
{
public:
    static void (*callbacks[6])();
};

我需要将所有回调值初始化为 NULL。

这是怎么做到的?

我尝试了以下方法:

void (* )[6]() A::callbacks[6] = {
    NULL, NULL, NULL, NULL, NULL, NULL
};

但不起作用

【问题讨论】:

  • 你到底想干什么?
  • @EdHeal 咖啡够你喝了。 :)
  • @EdHeal 用 NULL 初始化 A 类中所有回调的值...
  • @DrewDormann - 我不喝咖啡。我只是不明白问题的叙述。

标签: c++ arrays class pointers static


【解决方案1】:

您的定义语法错误。

改变

void (* )[6]() A::callbacks[6]

void (*A::callbacks[6])()

【讨论】:

  • +1 表示typedef-less 解决方案。 Anno 我很难弄清楚它的语法。
  • @H2CO3 多年的实践,我可以通常凭记忆做到这一点。 :)
  • @H2CO3 - 我为将要维护此代码的人感到抱歉
  • @EdHeal 我也是,不过这个解决方案是我最喜欢的 :)
  • 我想避免使用 typedef... =]
【解决方案2】:
typedef void(*T)();
T A::callbacks[6] = {NULL,NULL,NULL,NULL,NULL,NULL};

【讨论】:

    猜你喜欢
    • 2015-09-05
    • 2012-07-16
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多