Every object in .NET inherits (directly or indirectly) from the common root base \"Object\". Is there such a common object root in C++? How do I pass any object to
You'd at least depend on a minimum c++ runtime if there were a root object implemented in c++. This is undesirable sometimes.
There is no common base class in C++. However, there are already libraries that allow you to call member functions as delegates. You can try using boost::function together with boost::bind or boost::lambda.
There is no common root class. Use either void* to pass any object into a function, or better define some base class.
For that I need the object instance and pointer to the required function.
That sounds a lot like "delegates". First, you definitely will need to define a common base class for all the objects that you want to call. In C++ you can use multiple inheritance if the object already belong to some other hierarchy.
Then have a read through Member Functions and the Fastest Possible C++ Delegates which is an excellent in-depth article on the topic of delegates (which are an object and member function pointer bound together). Using the header file described in that article, you can create delegates and easily call them just like regular function pointers.
There is no common base class; but using a something like boost::any or more generally a template based approach is preferred over a void*.
Sorry - there is no root base object in C++. But you can define your own for all your classes.