new操作符,静态成员函数不能成为virtual,它在对象构造完成之前进行使用
virtual函数使用1。动;2。静;均为对象构造完成之时进行使用的,所以并不能作为virtual函数使用
new操作符
1。返回值需void*;2。参数size_t,自动初始化;3。使用在未构造完成的对象上;
new和delete均为类的静态成员函数,自动成为静态的成员函数,无需显式指示
class B{public: virtual void ok(){cout << "B::okokok" << endl;}// void * operator new(size_t){void *p = NULL; return p;}};
class D:public B{public: virtual void ok(){cout << "D::okokok" << endl;}};
int main(){ B *p = new D; p -> ok(); return 0;}