Having this class :
class Automat
{
private:
// some members ...
public:
Automat();
~Automat();
void addQ(string& newQ) ;
void addC
What you try to do is usually known as closure, a concept strong in functional programming. Rather than reinventing the wheel, I suggest you look into Boost::Phoenix, which provides this in a nice, peer reviewed library.
http://www.boost.org/doc/libs/1_47_0/libs/phoenix/doc/html/index.html
However, since C++ is a statically typed language, you will have to do some marshalling. There is no such thing like a generic function (object) in C++.