Search Your Topic

config
Friday, 16 June 2017 07:11

C++ Aggregation (HAS-A Relationship)

Written by
Rate this item
(0 votes)

In C++, aggregation is a process in which one class defines another class as any entity reference. It is another way to reuse the class. It is a form of association that represents HAS-A relationship.


C++ Aggregation Example

Let's see an example of aggregation where Employee class has the reference of Address class as data member. In such way, it can reuse the members of Address class.

 
  1. #include <iostream>  
  2. using namespace std;  
  3. class Address {  
  4.     public:  
  5.    string addressLine, city, state;    
  6.      Address(string addressLine, string city, string state)    
  7.     {    
  8.         this->addressLine = addressLine;    
  9.         this->city = city;    
  10.         this->state = state;    
  11.     }    
  12. };  
  13. class Employee    
  14.     {    
  15.         private:  
  16.         Address* address;  //Employee HAS-A Address   
  17.         public:  
  18.         int id;    
  19.         string name;    
  20.         Employee(int id, string name, Address* address)    
  21.        {    
  22.            this->id = id;    
  23.            this->name = name;    
  24.            this->address = address;    
  25.        }    
  26.      void display()    
  27.        {    
  28.            cout<<id <<" "<<name<< " "<<     
  29.              address->addressLine<< " "<< address->city<< " "<<address->state<<endl;    
  30.        }    
  31.    };   
  32. int main(void) {  
  33.     Address a1= Address("C-146, Sec-15","Noida","UP");    
  34.     Employee e1 = Employee(101,"Nakul",&a1);    
  35.             e1.display();   
  36.    return 0;  
  37. }  

Output:

101 Nakul C-146, Sec-15 Noida UP
Read 473 times
Anish Sir

"I am delighted once again to pen the welcome note to the Tosh!Yas Technologies ."

 Call +91 74 88 34 7779  | Email : anishsingh@live.com

toshiyas.in
More in this category: « C++ Inheritance C++ Polymorphism »

Leave a comment

Make sure you enter all the required information, indicated by an asterisk (*). HTML code is not allowed.