小编Wer*_* Bn的帖子

C++在构造函数中初始化一个非静态指针数组

我想以一种很好的方式初始化一个指针数组..有点像

handler[numberOfIndexes] = {&bla, &ble, &bli, &blo , &blu};
Run Code Online (Sandbox Code Playgroud)

但它不会这样工作.显然,我得到一个错误,因为我试图在函数的单个指针中放置一个函数指针数组:

cannot convert ‘<brace-enclosed initializer list>’ to ‘void (A::*)()’ in assignment
Run Code Online (Sandbox Code Playgroud)

那么,这是您要测试的代码:

#include <iostream>
#include <list>

using namespace std;

class A
{
    private:

    void first();
    void second();
    void third ();
    // and so on

    void(A::*handlers[4])(void);


    public:

    A();
};

void A::first()
{

}

void A::second()
{

}

void A::third()
{

}

A::A()
{
    //this is ugly
    handlers[0] = &A::first; 
    handlers[1] = &A::second;
    handlers[2] = &A::third;

    //this would be nice
    handlers[4] = {&A::first,&A::second,&A::third,0};//in …
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers function-pointers

0
推荐指数
1
解决办法
514
查看次数

标签 统计

arrays ×1

c++ ×1

function-pointers ×1

pointers ×1