C++教程-C++聚合(HAS-A关系)

C++聚合(HAS-A关系)
在C++中,聚合是一个过程,其中一个类将另一个类定义为其实体引用。这是重用类的另一种方式。它是表示HAS-A关系的一种关联形式。
C++聚合示例
让我们看一个聚合的例子,其中Employee类具有Address类的引用作为数据成员。通过这种方式,它可以重用Address类的成员。
#include <iostream>
using namespace std;
class Address {
public:
string addressLine, city, state;
Address(string addressLine, string city, string state)
{
this->addressLine = addressLine;
this->city = city;
this->state = state;
}
};
class Employee
{
private:
Address* address; // Employee HAS-A Address
public:
int id;
string name;
Employee(int id, string name, Address* address)
{
this->id = id;
this->name = name;
this->address = address;
}
void display()
{
cout<<id <<" "<<name<< " "<<
address->addressLine<< " "<< address->city<< " "<<address->state<<endl;
}
};
int main(void) {
Address a1= Address("C-146, Sec-15","Noida","UP");
Employee e1 = Employee(101,"Nakul",&a1);
e1.display();
return 0;
}
输出:
101 Nakul C-146, Sec-15 Noida UP
在上面的例子中,Employee类具有Address类的指针作为数据成员,表示Employee HAS-A Address的关系。通过这种方式,Employee类可以重用Address类的成员。