I
Immortal_Nephi
This Run() function is function pointer. It contains three
functions. How can you put const in Run() function? It should guard
against modifying Run()'s function pointer array.
Do you know what do const before void mean? For example -- const
void foo() {}.
class Obj
{
public:
Obj();
~Obj();
static void (*Run[3])(void);
private:
static void F1(void);
static void F2(void);
static void F3(void);
static unsigned int A;
static unsigned int B;
static unsigned int C;
};
unsigned int Obj::A = 0;
unsigned int Obj::B = 0;
unsigned int Obj::C = 0;
Obj::Obj() {}
Obj::~Obj() {}
void (*Obj::Run[3])(void) =
{
Obj::F1,
Obj::F2,
Obj::F3
};
void Obj::F1(void) { A += 1; }
void Obj::F2(void) { B += 1; }
void Obj::F3(void) { C += 1; }
int main()
{
Obj obj;
obj.Run[0]();
obj.Run[1]();
obj.Run[2]();
return 0;
}
Nephi
functions. How can you put const in Run() function? It should guard
against modifying Run()'s function pointer array.
Do you know what do const before void mean? For example -- const
void foo() {}.
class Obj
{
public:
Obj();
~Obj();
static void (*Run[3])(void);
private:
static void F1(void);
static void F2(void);
static void F3(void);
static unsigned int A;
static unsigned int B;
static unsigned int C;
};
unsigned int Obj::A = 0;
unsigned int Obj::B = 0;
unsigned int Obj::C = 0;
Obj::Obj() {}
Obj::~Obj() {}
void (*Obj::Run[3])(void) =
{
Obj::F1,
Obj::F2,
Obj::F3
};
void Obj::F1(void) { A += 1; }
void Obj::F2(void) { B += 1; }
void Obj::F3(void) { C += 1; }
int main()
{
Obj obj;
obj.Run[0]();
obj.Run[1]();
obj.Run[2]();
return 0;
}
Nephi