Exemplo n.º 1
0
int main() {  // Client code
	HinduFemale* hinduGirl = new HinduFemale;
	MuslimFemale* muslimGirl = new MuslimFemale;
	MuslimRitual muslimRitual;
	MuslimAdapter* adaptedHindu = new MuslimAdapter (hinduGirl);  

	muslimRitual.carryOutRitual (muslimGirl);
	muslimRitual.carryOutRitual (adaptedHindu);  
	delete adaptedHindu;  
	delete hinduGirl;
	delete muslimGirl; 
	return 0;
}
Exemplo n.º 2
0
int main() {
    HinduFemale* hinduGirl = new HinduFemale;
    MuslimFemale* muslimGirl = new MuslimFemale;
    MuslimRitual muslimRitual;
//	muslimRitual.carryOutRitual (hinduGirl);                        // Will not compile of course since the parameter must be of type Muslim*.

    MuslimAdapter* adaptedHindu = new MuslimAdapter (hinduGirl);    // hinduGirl has adapted to become a Muslim!

    muslimRitual.carryOutRitual (muslimGirl);
    muslimRitual.carryOutRitual (adaptedHindu);                     // So now hinduGirl, in the form of adaptedHindu, participates in the muslimRitual!
                                                                    // Note that hinduGirl is carrying out her own type of ritual in muslimRitual though.

    delete adaptedHindu;
    delete hinduGirl;
    delete muslimGirl;
    return 0;
}