0% found this document useful (0 votes)
44 views15 pages

6.1 Composition Aggregation

1) The lecture discusses inheritance, association, aggregation, and composition relationships between classes. Example programs are provided to illustrate these relationships. 2) Association represents a simple connection between classes where objects have their own lifecycles. Aggregation is a "has a" relationship where objects have their own lifecycles but one owns the other. 3) Composition is a stronger form of aggregation where the child object's lifecycle is tied to the parent's - if the parent is deleted, the child is also deleted. Memory management techniques for each relationship are explained.

Uploaded by

World Of IT
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views15 pages

6.1 Composition Aggregation

1) The lecture discusses inheritance, association, aggregation, and composition relationships between classes. Example programs are provided to illustrate these relationships. 2) Association represents a simple connection between classes where objects have their own lifecycles. Aggregation is a "has a" relationship where objects have their own lifecycles but one owns the other. 3) Composition is a stronger form of aggregation where the child object's lifecycle is tied to the parent's - if the parent is deleted, the child is also deleted. Memory management techniques for each relationship are explained.

Uploaded by

World Of IT
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Object Oriented

Programming (CC-211-3)
Instructor: Abdullah Javed
([email protected])
Visiting Lecturer,
Punjab University, Jhelum Campus.

Lecture 06.1
Fall 2021
Previous lecture
• Multiple inheritance
• Example program: employ and student class
• Constructor in multiple inheritance
• Example program
Today’s lecture
• Example program – inheritance
• Relationship between class
• Association
• Aggregation
• Composition
• Memory management
• String class
Example program
Problem statement
• Various situations require that pairs of numbers be treated as a unit.
For example, each screen coordinate has an x (horizontal) component
and a y (vertical) component.
• Derive a new class pairStack from Stack that allow to store pair
variables on a stack using a single call to a push()
• push(st); // st is a structure type variable
• retrieve using a single call to pop() function,
• st = pop();
Association
• It is a simple connection or channel between classes
• It is a relationship where all objects have their own lifecycle and there
is no owner
• Example: Department and student
• Multiple students can associate with single department
• Single student can associate with multiple departments
• No ownership
• Both can create and delete independently
Aggregation
• It is a form of association where all object have their own lifecycle but
there is a ownership like parent and child
• Represents as “has a” relationship
• Implementation details:
• Use pointer variables that points to object of other class
• Can use a reference variables that points to object of other class
• Not responsible for creation/destruction of subclass
Cont.
• Example: Employee and Company
• A single employee cannot belong to multiple company.
• If we delete the company, Employee object will not destroy

Employee e(6, “ali”);


Company C(“MS”, &e); c e
name ali ID 6
*emp name ali
Composition
• It is a specialize form of aggregation.
• It is a strong composition
• Parent and child objects have coincident lifetimes
• Child object dose not have it's own lifecycle
• If parent object gets deleted, then all of it's child objects will also be
deleted
Cont.
• Composition gives us 'part-of‘ relationship
• It is a stronger form of aggregation
• It has all the characteristics of aggregation plus two more
• The part may belong to only one whole
• The life time of the part is same as life time of the whole
• For example, it make sense to say that an engine is part-of a car.
• The lifetime of the part (Engine) is managed by the whole (Car), in other
words, when Car is destroyed, Engine is destroyed along with it.
Cont.
• Implementation details
• Use normal member variables
• Can use pointer values if composition class automatically handles
allocation/deallocation
• Responsible for creation/destruction of subclass
UML representation of Composition
Composition – Example
• Relationship between houses and rooms
• House can contains multiple room
• There is no independent life for room and any room cannot belong to
different houses.
• If house is deleted room will also be deleted automatically
Implementation details
class House{ class Room{
char name[30]; char Name[30];
Room rooms[2]; int Length;
…. int Width;
}; ….
};
house
rooms[2] 0 1
name Name Name
Length Length
Width Width
Summary – inheritance
• A class, called derived class can inherit feature of another class called
a base class
• Derived class can add other feature of its own
• Class can be derived publically or privately from base class
• A class can be derived from more than one base class – multiple
inheritance
• Level of inheritance
Cont.
• Aggregation is a “has a” or “part-whole” relationship
• Aggregation in C++: One class contains object of another class
• Composition represents 'part-of‘ relationship

You might also like