前言
面向对象编程(OOP)的三大核心特性是封装、继承和多态。理解继承机制对于掌握 C++ 类设计至关重要。本文将深入探讨继承中的作用域问题,特别是同名成员的隐藏与重载区别,以及派生类默认成员函数的行为。
一、什么是继承?
继承(inheritance) 是面向对象程序设计中代码复用的重要手段。它允许我们在保持原有类(基类)特性的基础上进行扩展,增加方法和属性,从而产生新的类(派生类)。这体现了由简单到复杂的认知过程,是类设计层次的复用。
假设我们有两个类 Student 和 Teacher,它们都有姓名、地址、电话等公共信息,也有各自独有的属性和方法。如果分别定义,会导致大量重复代码。通过提取公共部分为 Person 类并使用继承,可以有效解决冗余。
class Person {
public:
// 进入校园/图书馆/实验室刷二维码等身份认证
void identity() {
cout << "void identity()" << _name << endl;
}
protected:
string _name = "张三"; // 姓名
int _age = 18; // 年龄
string _address; // 地址
string _tel; // 电话
};
class Student : public Person {
public:
void study() {
cout << "void study()" << endl;
}
protected:
int _stuid; // 学号
};
class Teacher : public Person {
public:
void teaching() {
cout << "void teaching()" << endl;
}
protected:
string _title; // 职称
};
{
Student s;
Teacher t;
s.();
t.();
;
}



