默认的member function是静态绑定的,编译期就决定了。若要获得动态绑定,须加上virtual。
虚函数机制不会发生作用的两种情况:
1.基类的构造函数和析构函数决不会调用派生类的虚函数,即调用的一定是基类自身的函数。
2.使用的是基类的对象,而非指针或引用。只有通过指针和引用才可发挥多态的威力。
要正确析构对象,应将destructor申明为virtual,但不要申明为pure virtual。
博客介绍了C++中成员函数的绑定机制,默认是静态绑定,编译期决定,要动态绑定需加virtual。还指出虚函数机制不生效的两种情况,一是基类构造和析构函数不调用派生类虚函数,二是使用基类对象而非指针或引用。同时强调正确析构对象应将析构函数声明为virtual而非纯虚函数。
默认的member function是静态绑定的,编译期就决定了。若要获得动态绑定,须加上virtual。
虚函数机制不会发生作用的两种情况:
1.基类的构造函数和析构函数决不会调用派生类的虚函数,即调用的一定是基类自身的函数。
2.使用的是基类的对象,而非指针或引用。只有通过指针和引用才可发挥多态的威力。
要正确析构对象,应将destructor申明为virtual,但不要申明为pure virtual。
1222
3806
1833
9753

被折叠的 条评论
为什么被折叠?