静态成员函数的作用是什么?
静态成员函数是类函数,它属于一个类而非具体的类对象,这个类实例化的每个成员都可用,同时,这个类也可以直接调用这个函数而不用实例化一个对象。
</pre><pre name="code" class="cpp">class A
{
public:
virtual void foo()
{
cout<<"A::foo() is called"<<endl;
}
};
class B:public A
{
public:
void fun()
{
cout<<"B::foo() is called"<<endl;
}
};
int main(void) un
{
A *a = new B();
a->fun(); // 在这里,a虽然是指向A的指针,但是被调用的函数(fun)却是B的!
return 0;
}
运行结果:B::foo() is called
虚函数只能借助于指针或者引用来达到多态的效果,它的这种编译时的多态性确定了它在运行时调用哪一个函数;
重虚函数
虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空,所以子类中可以重写也可以不写基类中的此函数!