prepare and describe the definition of composition in C++ and how it is useful in writing object-oriented programming. Also, describe how it is different from inheritance and how both inheritance and composition are useful in developing object-oriented programs.