C++中虚函数成员与非虚函数成员有何区别

来源:百度知道 编辑:UC知道 时间:2024/06/24 07:00:43

虚函数是不能被调用的,
非虚函数可以

虚函数成员是动态绑定的基础,也就是说可以实现多态,而非虚函数不能,下面的两个程序你对比一下,就应该可以明白了

#include <iostream>
using namespace std;
class B0
{
public:
virtual void display(){cout<<"B0::display()"<<endl;}
};

class B1: public B0
{
public:
void display(){cout<<"B1::display()"<<endl;}
};

class D1: public B1
{
public:
void display(){cout<<"D1::display()"<<endl;}
};
void fun(B0 *ptr)
{
ptr->display();
}
int main()
{ B0 b0, *p;
B1 b1;
D1 d1;

p=&b0;
fun(p);

p=&b1;
fun(p);

p=&d1;
fun(p);
}
设为虚函数,运行结果
B0::display()
B1::display()
D1::display()

#include <iostream>
using namecpace std;
class B0
{
public:
void display(){ cout<<"B0::display()&quo