我想以一种很好的方式初始化一个指针数组..有点像
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)