``` virtual ```
时间: 2024-03-25 10:34:17 浏览: 29
`virtual`是C++中的一个关键字,用于声明虚函数。虚函数是在基类中声明的,可以在派生类中进行重写。使用虚函数可以实现多态性,即通过基类指针或引用调用派生类的函数。
以下是代码的逐行解释:
1. `class Base`:定义了一个基类Base。
2. `public:`:指定接下来的成员函数和成员变量是公有的,可以被其他类访问。
3. `virtual void print()`:声明了一个虚函数print(),返回类型为void,没有参数。
4. `{}`:函数体的开始。
5. `cout << "Base class" << endl;`:输出字符串"Base class"到标准输出流。
6. `}`:函数体的结束。
7. `class Derived : public Base`:定义了一个派生类Derived,继承自Base。
8. `public:`:指定接下来的成员函数和成员变量是公有的,可以被其他类访问。
9. `void print()`:重写了基类Base中的虚函数print(),返回类型为void,没有参数。
10. `{}`:函数体的开始。
11. `cout << "Derived class" << endl;`:输出字符串"Derived class"到标准输出流。
12. `}`:函数体的结束。
13. `int main()`:定义了主函数main(),程序的入口。
14. `{}`:函数体的开始。
15. `Base* b = new Derived();`:创建了一个指向Derived对象的基类指针b。这是多态性的体现,通过基类指针可以调用派生类的函数。
16. `b->print();`:通过基类指针调用虚函数print()。由于b指向的是Derived对象,所以会调用Derived类中重写的print()函数。
17. `delete b;`:释放了通过new关键字创建的Derived对象。
18. `return 0;`:返回0,表示程序正常结束。
19. `}`:函数体的结束。
总结:以上代码定义了一个基类Base和一个派生类Derived,其中Base类中声明了一个虚函数print(),Derived类中重写了该虚函数。在主函数中,通过基类指针调用虚函数print(),实现了多态性。
阅读全文