#include <iostream>
#include <vector>
usingnamespace std;
class DrawData
{
public:
vector <void*> p;
void Add(void *q)
{
p.push_back(q);
}
void Draw()
{
for(unsignedint i=0;i<p.size();i++)
{
(*p[i])();
}
}
};
DrawData DrawData;
class a
{
public:
a()
{
DrawData.Add(&func());
}
void func()
{
cout<<"\nclass a";
}
};
class b
{
public:
b()
{
DrawData.Add(&func());
}
void func()
{
cout<<"\nclass b";
}
};
int main()
{
a a;
b b;
DrawData.Draw();
}
I get those errors:
1 2 3 4 5 6
D:\C++\i\i.cpp: In member function 'void DrawData::Draw()':
D:\C++\i\i.cpp:20:18: error: 'void*' is not a pointer-to-object type
D:\C++\i\i.cpp: In constructor 'a::a()':
D:\C++\i\i.cpp:32:28: error: lvalue required as unary '&' operand
D:\C++\i\i.cpp: In constructor 'b::b()':
D:\C++\i\i.cpp:46:28: error: lvalue required as unary '&' operand