On May 2, 2:23 pm, Jennifer Jazz <Jeniffer...@gmail.com> wrote:
> My question is regarding the mapping of Class diagram to the C++
> coding.
>
> There are 3 realtions in Class diagram
>
> 1) Assosication
> 2) Composition
> 3) Aggregation (Weak Composition).
>
> -----------------------------------------------------
> Class diagram for A ----- B (Association)
> I handle it coding like that
>
> main() {
> A objA;
> B objB;
>
> objA.funA(objB); // or
> objB.funB(objA);
>
> }
>
> -----------------------------------------------------
> A <>---- B (filled diamond) for compoistion
> Take the example of CAR and ENGINE, this relation is composition
>
> I handle it coding like that
>
> class B {}
>
> class A {
> B objB; //or B* objB
>
> }
>
> This shows when A's Object destroys B also destroys.
> Im clear with above two concepts but when aggregation comes.
>
> A <>---- B (non-filled diamond) for agregation
> Take the example of CAR and WHEEL-CUP.
>
> class B {}
>
> class A {
> B* ptrB;
>
> }
>
> Take the example of CAR and WHEEL-CUP, this relation is aggregation.
> CAR changes its wheel-cup each time when it go to service the car.
>
> CAR <>------ Wheel-CUp
>
> im not getting one thing thing when car destroyed (i.e. destructor
> called) does Wheel-Cup should also destroy? iF yes then the difference
> between COMPOSITION and AGGREGATION is only left that in aggregation
> the aggregated object (B* ptrB) points to different objects i.e.
> different wheel cups at different states. and in COMPOSITION it only
> keep points to only one object. AND in both aggre. and comp. object B
> destoys as object A destroys.
>
> One more question , in composition the Object B is created as object A
> is created i.e. (When CAR is created ENGINE also created) but what abt
> wheel cups? when they will be created and destroyed? as wheel cups
> can live independly and when car goes for services, they new wheel
> cups only points of the this car showing new wheel cups attached. So
> the other wheel cups destroyed !!??
>
> I shall be very very thankful if u answer me this question
This is more of a UML question (the C++ syntax is only incidental) and
should be asked on comp.object or similar. See this FAQ for what is on-
topic here:
http://www.parashift.com/c++-faq-lit...t.html#faq-5.9
<OT>My recollection is that composition implies that one class owns
the other entirely, whereas aggregation implies that one class holds a
reference to another but isn't its owner. If that is accurate, then a
better analogy would be a car which holds references for each of the
people/pets/whatever that it is carrying. It doesn't own them and they
shouldn't necessarily be destroyed when it is, but the car may need to
access their methods/properties (e.g., to get their weight for vehicle
dynamics or some such).</OT>
Cheers! --M