继承
public/protected/private 继承、重写、final/override、多继承
继承
C++ 支持三种继承方式(public/protected/private),加上多继承——灵活但需要理解规则。
学完本章你将: 掌握 public 继承、重写、final/override、多继承。
基本继承
cpp
#include <iostream>
#include <string>
// 基类
class Animal {
protected:
std::string name;
public:
Animal(const std::string &n) : name(n) { }
void eat() { std::cout << name << " 在吃东西\n"; }
};
// 派生类
class Dog : public Animal { // public 继承
public:
Dog(const std::string &n) : Animal(n) { } // 调用基类构造
void bark() { std::cout << name << " 汪汪叫\n"; }
};
int main() {
Dog d("旺财");
d.eat(); // 继承自 Animal
d.bark(); // Dog 自己的方法
return 0;
}
override 和 final
cpp
class Base {
public:
virtual void print() const { }
virtual void show() const { }
};
class Derived : public Base {
public:
void print() const override { } // ✅ 显式标注"重写"
// void pritn() const override { } // ❌ 拼写错误——编译报错!
void show() const final { } // 禁止子类再重写
};
// class More : public Derived {
// void show() const { } // ❌ 被 final 禁止
// };
💡
override是编译器的安全带——如果你拼错了方法名或参数不匹配,编译器直接报错。