How about following questions:
1. Please tell the meaning of following definitions. How to assign value to ip and its element?
2. What is constant in following definitions:
const int *cip;
int const *icp;
const int const *cicp;
virtual void foo(int i = 0);
class Drived:public Base
virtual void foo(int i = -1);
In d.foo() call, what is the default value for its parameter i (hint: think about the virtual table and how the default value is stored)
4. Why calling virtual function in constructor/destructor is different from calling the same function in other methods?