标签:静态多态和动态多态
多态
多态就是多种形态,C++的多态分为静态多态和动态多态。
静态多态就是重载,因为是在编译期决议确定,所以称为静态多态。
动态多态就是通过继承重写基类的虚函数实现的多态,因为是在运行时决议确定,所以称为动态多态。
class Base
{
public :
virtual void func1()
{
cout<<"Base::func1" <<endl;
}
virtual void func2()
{
cout<<"Base::func2" <<endl;
}
void display ()
{
cout<<"display()" <<endl;
}
void display (int i)
{
cout<<"display(int i)->" <<i<< endl;
}
private :
int a ;
};
class Derive :public Base
{
public :
virtual void func1()
{
cout<<"Derive::func1" <<endl;
}
virtual void func3()
{
cout<<"Derive::func3" <<endl;
}
virtual void func4()
{
cout<<"Derive::func4" <<endl;
}
private :
int b ;
};
void func (Base& b)
{
b.func1 ();
//b.func2();
b.display ();
b.display (10);
}
void Test1 ()
{
Base b1 ;
Derive d1 ;
func(b1 );
func(d1 );
}
标签:静态多态和动态多态
原文地址:http://10622551.blog.51cto.com/10612551/1696425