C++面向对象编程《2》--类和类之间的三大关系

本文深入探讨了面向对象编程中的三大核心机制:复合、委托与继承。解释了它们的定义、使用场景及优缺点,帮助读者理解如何在软件设计中灵活运用这些机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复合(Composition)、委托(Delegation)、继承(Inheritance)

 

一、复合的形式:在A类中定义了一个B类的对象,然后A类的所有实现都通过B类的函数实现,类似于对B类成员函数的再次封装。具体的实例代码如下:


 

两者之间的关系:

             

 

二、委托:在A类中定义了一个指向B类的指针变量,A类中所需要的操作都在B类中进行声明和定义。这样做的好处是可以使得A类中的声明可以脱离于B类中的实现,B类实现无论如何改变都不会影响到A类,从而可以使客户端和后台分离。同时,这样做在编译时,只需要编译B类中的变化代码。(PIMPL(Private Implementation 或 Pointer to Implementation))

复合和委托的异同:

相同点:先构造函数和析构函数的调用顺序相同

不同点:

1、一个是普通变量,一个是指针变量。

2、复合时的两个类是同时创建的,而委托时的两个类是A类先生成,在A类需要调用到B类时,才会生成B类。

 

 

三、继承

继承就是子类可以通过三种模式(public、private、protected三种模式来继承父类中的成员函数与成员变量)。这一点想必不用多说。其中继承中的各种特性将会在下一节中记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值