new操作符与virtual

    技术2022-05-11  128

    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;} 


    最新回复(0)