企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ## 虚函数 不强制子类一定要实作,子类不实作的话会以父类的实作为主,子类实作的话会以子类的实作为主 <details> <summary> main.cpp</summary> ``` class Parent { public: virtual void display(){ cout<< "parent"<<endl;; } }; class Child:public Parent{ public: virtual void display() override { cout<<"child"<<endl; } }; int main(int argc, char *argv[]) { Child c; c.display(); Parent *c1 = new Child(); c1->display(); // 如果不用虚函数,则输出为 parent // 使用虚函数,则输出为 child return 0; } ``` </details> <br /> ## 纯虚函数 1. 纯虚函数像 java 中的抽象类,只要函数中有一个纯虚函数,就是抽象类,且抽象类不能直接调用,只能被继承 2. 纯虚函数表达为 `virtual void func1() = 0;`,没有具体实现 <details> <summary> main.cpp</summary> ``` class Parent { public: virtual void display()=0; // 纯虚函数必须要求继承类实现此方法 }; class Child:public Parent{ public: virtual void display() override { cout<<"child"<<endl; } }; int main(int argc, char *argv[]) { // Parent p; // error: variable type 'Parent' is an abstract class Child c; c.display(); //child Parent *c1 = new Child(); c1->display(); //child return 0; } ``` </details> <br />