继承是将已有类的属性和方法引入新类的过程。
C++类:构造函数(对象创建时调用)、析构函数(对象销毁时调用)、虚函数(实现多态)。构造函数不能为虚。
构造函数不能是虚函数(虚表在构造函数完成后才建立)。析构函数可以且通常应该为虚函数(防止内存泄漏)。
【考点】面向对象编程|继承机制|类定义
🎯 考纲定位 本题出自 GESP 六级「面向对象编程」模块,属于基础概念识记型题目。命题人放这道题的目的很明确:卡住那些对「面向对象三大特征」只背了名词、没理解内涵的考生——继承、封装、多态在六级大纲里是并列概念,但绝大多数学生只会说「继承是复用」,却说不清「如何复用」。
🧠 解题思维 看到「继承是将已有类的属性和方法引入新类的过程」,先判断这是否属于 OOP 标准定义。关键观察:继承的本质就是「父子类关系」,父类定义的属性与方法自动成为子类成员,子类可重写(override)父类方法或新增方法。推理依据:C++ 中通过 class Child : public Parent { } 声明即可建立继承关系,无需手动拷贝属性。因此陈述正确。这类题的通法:凡是定义类关系(继承、组合、聚合)的命题,先对照 C++ 语法和语义,再判断描述是否完整。
🪤 陷阱拆解 A 选项看似「绝对正确」,但命题人埋的坑在于:很多考生会想「继承只是复用,那封装呢?多态呢?」从而犹豫。B 选项是典型的干扰项——它利用「继承是复制」的朴素直觉,暗示「引入」可能意味着「拷贝一份」,偷换了「引入」的专业含义(引入 = 复用 + 可重写)。如果你只背「继承是复用」这个结论,而不理解「复用」在 C++ 中具体表现为「成员自动继承」,就会掉进陷阱。
🔄 反命题思维 如果把题干改成「继承是通过组合方式实现的」,答案就变成 B(错误),因为组合与继承是两种完全不同的关系。刷到此类题时,先问自己「命题人想考我什么」——考概念辨析还是考实现机制?