虚函数与多态学习心得

不加 virtual 的函数是静态绑定,编译就定死;加了 virtual 是动态绑定,运行时根据真实对象类型调用函数。
我写的经典多态代码示例:
using namespace std;

class Animal
{
public:
// 虚函数
virtual void speak()
{
cout< "动物在叫"< endl;
}
};

class Dog : public Animal
{
public:
// 重写虚函数
void speak() override
{< "小狗< endl;
}
};

int main()
{
Animal *p = new Dog();
p->speak(); // 动态绑定,调用子类方法
delete p;
return 0;
}
如果不加 virtual,这里会调用父类函数,实现不了多态。加上 virtual 之后,父类指针可以兼容所有子类,代码扩展性超强。

posted @ 2026-06-22 16:16  嘿嘿123888888888  阅读(2)  评论(0)    收藏  举报