您的位置:首页 > 编程语言 > C语言/C++

虚函数与多态[C++]

2011-10-02 21:38 288 查看
引用和指针的静态类型(编译时可知的引用类型或指针类型)和动态类型(指针或引用所绑定的对象的类型,运行时获知)可以不同。因此,可以用基类的指针或引用指向派生类的对象,再通过基类的指针或引用来调用虚函数,所运行的虚函数是引用或指针所指向的对象所属类型定义的版本。

C++函数默认不使用动态绑定,除非满足两个条件:1.只有虚函数才能进行动态绑定。 2.必须通过基类类型的引用或指针进行函数调用。

class Base{
public:
Base();
virtual void fun(){cout<<"fun of base"<<endl;}

};

class Derived1{
public:
Derived();
void fun(){cout<<"fun of derived1"<<endl;}
};

class Derived2{
public:
Derived();
void fun(){cout<<"fun of derived2"<<endl;}
};

int main()
{
Base * pb;
pb = new Derived1();//fun of derived1
pb->fun();
pb = new Derived2();//fun of derived2
pb->fun();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: