C++ - 面向对象 - virtual、虚函数与纯虚函数

C++ - 面向对象 - virtual、虚函数与纯虚函数 virtual1、基本介绍virtual 让派生类重写函数通过基类指针 / 引用调用时执行实际对象的版本2、演示classAnimal{public:virtualvoidspeak(){cout???endl;}};classDog:publicAnimal{public:voidspeak()override{coutWoofendl;}};Animal*anewAnimal();Animal*dnewDog();a-speak();d-speak();# 输出结果 ??? Woof虚函数与纯虚函数1、基本介绍维度虚函数纯虚函数写法virtual void func()virtual void func() 0是否有实现必须提供不提供类能否实例化能具体类不能抽象类派生类必须重写否不重写则用基类版本是除非派生类也想当抽象类2、演示虚函数classAnimal{public:virtualvoidspeak(){cout???;}};classDog:publicAnimal{public:voidspeak()override{coutWoof;}};Animal*pnewDog();p-speak();纯虚函数classShape{public:virtualdoublearea(intr)0;};classCircle:publicShape{public:doublearea(intr)override{return3.14*r*r;}};3、注意事项纯虚函数的 0是固定语法没有替代写法纯虚函数也可以有实现体classAnimal{public:virtualvoidspeak()0;};voidAnimal::speak(){cout???;}classDog:publicAnimal{public:voidspeak()override{Animal::speak();}};