C++ 虚函数访问控制
一、虚函数的访问控制虚函数的访问控制(public、protected、private)会影响其在派生类中的重写和调用规则,这是容易混淆的知识点。 1. public 虚函数基类中 public 的虚函数在派生类中可以被重写为 public 或 protected,但不能重写为 private(在 C++11 前允许,C++11 后被禁止): 123456789101112131415161718192021222324252627282930313233343536373839class Base {public: virtual void publicFunc() { cout << "Base::publicFunc" << endl; }};class Derived : public Base {public: // 正确:重写为public void publicFunc() override { cout <<...
C++ 虚函数与多态实现机制
一、虚函数核心概念框架1.1 虚函数定义虚函数是通过virtual关键字声明的成员函数,允许派生类重写基类的行为。其本质是为实现运行时多态服务,通过动态绑定机制,在程序运行时决定调用哪个类的函数实现。 类比理解:想象一个图书馆管理系统,每个书架都有一个统一的借书接口。当借书时,系统根据实际书架类型( Hardcover/Book/Reference)选择对应的借书规则。 1.2 多态实现四要素 基类指针/引用 虚函数声明 派生类重写 动态绑定调用 关键概念:虚函数定义、多态特性、静态与动态绑定差异 示例: 12345678910111213141516171819202122232425262728293031323334353637#include <iostream>using namespace std;class Animal {public: virtual void speak() { cout << "Animal speak" <<...