小学生学C++编程语法知识(什么是类的继承)
2026/8/10 8:54:31 网站建设 项目流程


C++面向对象核心:什么是类的继承?

——从“孩子继承父母”理解 C++ 继承机制

对于小学生,可以先记一句话:

继承,就是让一个新的类拥有另一个已有类的功能,并且可以增加自己新的功能。

就像现实生活:

爸爸 ↓ 孩子

孩子可以继承爸爸的一些特点,同时拥有自己的特点。

在 C++ 中:

基类(父类) ↓ 派生类(子类)

一、为什么需要继承?

假设我们写一个动物程序。

有:

class Dog { }; class Cat { };

狗和猫都有:

  • 年龄

  • 名字

  • 吃东西

  • 睡觉

如果每个类都写一遍:

class Dog { public: int age; void eat() { } }; class Cat { public: int age; void eat() { } };

会发现:

大量重复。

程序员想:

能不能把共同的东西放一起?

于是有了:

继承。


二、先创建一个父类(基类)

例如:

class Animal { public: int age; void eat() { cout << "吃东西" << endl; } };

Animal:

表示:

“所有动物都有的东西”。


然后:

狗:

class Dog : public Animal { };

这里:

:

表示:

继承。

public Animal

表示:

Dog公开继承Animal。

关系:

Animal | | Dog

三、继承以后,Dog有什么?

虽然 Dog 类里面什么都没有:

class Dog : public Animal { };

但是:

Dog自动拥有:

int age;

和:

eat()

例如:

int main() { Dog d; d.age = 3; d.eat(); }

输出:

吃东西

为什么?

因为:

Dog继承了Animal。


四、继承的本质是什么?

很多小朋友会误解:

Dog里面没有代码,为什么有功能?

实际上:

继承以后:

Dog对象里面包含:

+----------------+ | Animal部分 | | | | age | | eat() | +----------------+ | Dog自己的部分 | +----------------+

也就是说:

子类对象里面包含父类部分。


五、父类和子类的专业名字

C++中:

生活C++
爸爸基类(Base Class)
孩子派生类(Derived Class)
继承Inheritance

例如:

class Dog : public Animal { };

Animal:

基类。

Dog:

派生类。


六、派生类可以增加自己的功能

继承不是简单复制。

例如:

动物:

class Animal { public: void eat() { cout<<"吃东西"<<endl; } };

狗:

class Dog : public Animal { public: void bark() { cout<<"汪汪叫"<<endl; } };

现在:

Dog拥有:

父类:

eat()

自己:

bark()

使用:

Dog d; d.eat(); d.bark();

输出:

吃东西 汪汪叫

七、继承中最重要的三个权限

继承有三种方式:

class Dog : public Animal

还有:

class Dog : protected Animal

和:

class Dog : private Animal

对于初学者:

重点掌握:

public继承


八、public继承是什么意思?

看:

class Animal { public: int age; protected: int weight; private: string name; };

然后:

class Dog : public Animal { };

结果:

父类成员Dog能否直接使用
public可以
protected可以
private不可以

例如:

class Animal { public: int age; private: string name; }; class Dog:public Animal { }; int main() { Dog d; d.age=5; //可以 d.name="旺财"; //错误 }

为什么?

因为:

private是父类自己的秘密。


九、为什么父类private不能被子类访问?

可以理解:

爸爸有一个私人日记:

爸爸 公开: 身高 保护: 钱包 私密: 日记

孩子可以知道:

身高。

可能知道:

钱包。

但是:

不能直接打开:

爸爸日记。

所以:

private成员:

子类也不能访问。


十、构造函数和继承

这是考试重点。

例如:

class Animal { public: Animal() { cout<<"Animal构造"<<endl; } }; class Dog:public Animal { public: Dog() { cout<<"Dog构造"<<endl; } };

创建:

Dog d;

执行顺序:

先:

Animal构造

再:

Dog构造

为什么?

因为:

Dog身体里面先有Animal部分。

所以:

先造爸爸。

再造孩子。


十一、析构函数顺序

刚好相反。

创建:

Animal构造 ↓ Dog构造

销毁:

Dog析构 ↓ Animal析构

口诀:

构造:先父后子
析构:先子后父


十二、继承和普通包含有什么区别?

很多孩子容易混淆:

继承:

"is-a"

意思:

“是一个”

例如:

Dog 是 Animal

所以:

Dog : Animal

包含:

"has-a"

意思:

“拥有一个”

例如:

汽车:

Car | |-- Engine

汽车不是发动机。

所以:

不是继承。


十三、一个完整例子

#include<iostream> using namespace std; class Animal { public: string name; void eat() { cout<<"动物吃东西"<<endl; } }; class Dog:public Animal { public: void bark() { cout<<"狗叫汪汪"<<endl; } }; int main() { Dog d; d.name="旺财"; d.eat(); d.bark(); return 0; }

运行:

动物吃东西 狗叫汪汪

十四、记忆总结

什么是继承?

一句话:

继承就是子类自动获得父类已有的属性和函数,并且可以增加自己的功能。


继承关系:

父类 Animal | | 子类 Dog

三个核心:

1. 子类拥有父类功能

Dog d; d.eat();

2. 子类可以扩展

d.bark();

3. 创建顺序

构造: 父 → 子 析构: 子 → 父

十五、和后面虚函数的联系

学习到这里,后面会遇到:

Animal *p; Dog dog; p=&dog;

为什么:

父类指针可以指向子类对象?

为什么需要:

virtual

这就是 C++ 面向对象的:

多态(Polymorphism)


所以:

继承是 C++ 三大面向对象特性之一:

封装 ↓ 继承 ↓ 多态

理解继承,是学习虚函数、抽象类、设计模式的基础。


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询