Untitled
unknown
plain_text
a year ago
1.4 kB
36
Indexable
#include <bits/stdc++.h>
using namespace std;
class Heart {
public:
Heart(string person_name) : person_name_(person_name) {}
~Heart() { cout << "~Heart of " << person_name_ << endl; }
void Beats();
private:
string person_name_;
};
// Declare
class Person;
class Home {
public:
Home(string address) : address_(address) {}
~Home() { cout << "~Home of address: " << address_ << endl; }
void AddPerson(Person *person) {
persons_.push_back(person);
}
string address_;
private:
vector<Person*> persons_; // Association
};
// Define
class Person {
public:
Person(string person_name)
: heart_(person_name),
person_name_(person_name) {}
~Person() {
cout << "~Person " << person_name_ << endl;
}
void AddHome(Home *home) {
homes_.push_back(home);
}
private:
// Member
Heart heart_; // Composition
// Member
vector<Home*> homes_; // Association
string person_name_;
};
int main() {
Home *home1 = new Home("delhi");
Home *home2 = new Home("bangalore");
Home *home3 = new Home("mumbai");
Person *person1 = new Person("A");
Person *person2 = new Person("B");
person1->AddHome(home1);
home1->AddPerson(person1);
person1->AddHome(home2);
home2->AddPerson(person1);
person2->AddHome(home2);
home2->AddPerson(person2);
person2->AddHome(home3);
home3->AddPerson(person2);
return 0;
}
Editor is loading...
Leave a Comment