C++ 聚合

2025 年 8 月 29 日 | 阅读 4 分钟

在 C++ 中,聚合是一个类将另一个类定义为任何实体引用的过程。它是重用类的另一种方式。它是一种表示 HAS-A 关系的形式。我们使用聚合的概念来表示两个对象之间的“HAS-A”关系,即关联两个对象。

C++ 聚合的语法

它具有以下语法:

例如:

在这里,Test 类是包含一些实例变量和实例方法的容器。Test 类和 A 类之间存在 Has-A 关系。A 类的对象持有 Test 类对象的引用指针。

C++ 聚合的示例实现

让我们举一个例子来说明 C++ 中的聚合。

示例

编译并运行

输出

Below are the details : 
 ------------------------------ 
 Name : Joy 
  Hno : 45 
  City : Los Angeles 
  State : USA
 ------------------------- 
 Name : Jack 
  Hno : 65 
  City :  London 
  State : UK
 -------------------------

说明

在这个例子中,我们演示了聚合的概念,其中 Address 类包含一个指向 Test 对象的指针,该对象表示地址详细信息,例如门牌号、城市和州。在 main() 函数中,我们创建了两个 Test 对象并将它们传递给相应的 Address 对象。之后,display() 函数打印每个人的组合信息。它展示了一个类如何在不拥有其生命周期的情况下引用另一个类。

对象符合聚合的条件

C++ 中,对象需要定义一些关系

  • 一个对象必须是一个类的一部分。
  • 关系不应有方向,即它应该是单向的。
  • 类的成员可以同时是一个或多个类的一部分。
  • 类的成员不应该知道类的存在。

使用 C++ 聚合的优点

以下是 C++ 聚合的优点

  • 它显示了两个类的对象之间单向的 HAS-A 关系。
  • 与关联相比,它包含更多限制。
  • 它使代码更具可读性和可理解性,以表示关系。
  • 它还有助于增强代码的可重用性。

结论

总之,C++ 聚合是两个不同类的对象之间的一种关系类型。它表示 HAS-A 类型的关系,其中一个类是部分类,另一个是整体类,其中指向部分类对象的引用变量存在于整体类对象中。这里,部分类对象的生命周期独立于整体类对象的生命周期。

C++ 聚合 MCQ

1) 为 C++ 聚合选择正确选项

  1. C++ 聚合是一种一个类继承另一个类的关系。
  2. C++ 聚合是一种一个类是另一个类一部分的关系。
  3. C++ 聚合是一种一个类使用另一个类的关系。
  4. C++ 聚合是一种一个类是另一个类的朋友的关系。
 

答案:b) C++ 聚合是一种一个类是另一个类一部分的关系。


2) 选择最能描述 C++ 聚合中关系的最佳选项。

  1. 继承
  2. 强所有权
  3. 弱所有权
  4. 无所有权
 

答案:c) 弱所有权


3) 从以下选项中选择 C++ 聚合的示例。

  1. 一个名为“Dog”的类有一个名为 bark() 的方法
  2. 一个名为“Library”的类拥有许多“book”对象。
  3. 一个名为“Car”的类继承自另一个名为“Vehicle”的类。
  4. 一个名为“Person”的类有一个朋友类“Address”。
 

答案:b) 一个名为“Library”的类拥有许多“book”对象。


4) 从下面选择正确选项。

  1. C++ 聚合与组合相同
  2. C++ 聚合无法在 C++ 中实现
  3. C++ 聚合部分的生命周期依赖于整体的生命周期。
  4. C++ 聚合的部分可以独立于整体而存在。
 

答案:d) C++ 聚合的部分可以独立于整体而存在。


5) 选择实现 C++ 聚合的常用关键字。

  1. Protected
  2. 公共
  3. 私有
  4. 不适用
 

答案:d) 不适用


下一主题C++ 多态性