基本信息
文件名称:C++中的类扩展之继承和组合详解.docx
文件大小:15.75 KB
总页数:3 页
更新时间:2025-05-22
总字数:约1.04千字
文档摘要

C++中的类扩展之继承和组合详解

目录相关术语一、继承二、组合

相关术语

继承:继承父类后可以拥有父类对应的属性和方法。

组合:将类作为成员对象,基类可以直接调用派生类对应的属性和方法。

一、继承

继承是指在一个已有的类的基础上,创建一个新的类并且使用原有类的功能和属性。通过继承,派生类可以获得基类的全部或部分成员和方法,然后添加新的成员和方法,或者覆盖部分原有成员和方法。

继承方式分为公有继承、私有继承和保护继承。

公有继承:可以继承基类的公有成员和保护成员,并且派生类对外表现为基类的类型;私有继承:只能继承出基类的公有成员、保护成员、私有成员,并且派生类对外表现为自身类型;保护继承:可以继承保护成员和公有成员。

下面是一个简单的继承示例:

classAnimal{

public:

voideat(){

coutAnimaleat!endl;

classDog:publicAnimal{

public:

voidbark(){

coutDogbark!endl;

intmain(){

Dogdog;

dog.eat();//Animaleat!

dog.bark();//Dogbark!

return0;

二、组合

组合是指在类中嵌入对象,从而使组合类可以使用嵌入对象的全部或部分成员和方法。与继承不同,组合是静态的,即组合类与嵌入对象之间的关系在编译时就已经确定,不能在运行时动态改变。

组合可以分为成员变量组合和指针组合两种。

成员变量组合:指嵌入对象作为组合类的成员;指针组合:指嵌入对象作为指针成员,需要在组合类的构造函数中动态分配内存。

下面是一个简单的组合示例:

classLeg{

public:

voidjump(){

coutLegjump!endl;

classAnimal{

public:

voideat(){

coutAnimaleat!endl;

Legleg;

intmain(){

Animalanimal;

animal.eat();

animal.leg.jump();//Legjump!

return0;