#include using namespace std; // one class delegating another // myClassDelegation2.cpp //also defualt constructor destructor //new and delete class Engine { public : Engine(){ cout<<"\n default constructor ";} ~Engine(){ cout<<"\n default desstructor ";} void start() { cout<<"\n \t car started";} void stop() { cout<<"\n \t car stopped";} void cruise(){ cout<<"\n \t car crusing";} }; class Car { private: Engine _mcareng; public: void remote_start() { _mcareng.start(); } void remote_stop() { _mcareng.stop(); } void remote_crusie(){ _mcareng.cruise();} void auto_cruise(Car* carPtr) { //using a pointer to // a class member funciton than calling //the same directly carPtr->remote_crusie(); cout<<"\n car break applied "; carPtr->remote_start(); cout<<"\t resumed"; carPtr->remote_crusie();cout<<"\t :resumed"; } }; int main() { Car car; Car *car1 = new Car; cout<<"\n--- main function "; car.remote_start(); car.remote_stop(); car.auto_cruise(car1); delete car1; return 0; }