lass is used to hold a collection of instances of some programmer defined class or struct.With interface classes the Idea is that actual classes implement an interface from which they are derived.What are the advantages and costs associated with hiding all implementation details of a class? Describe how such hiding can be achieved. (2 marks) Advantages:changes to MyClass, HisClass, HerClass have less impact on clientYourClass must be recompiled, but not client classesProgram must be relinked.if details are proprietary, then you need only release compiled modulesCost?twice as many objects at run timemore impact on memory manager extra indirectionsThis hiding can be achieved if:The header file declaring class YourClass does not reveal any of the detail, no #includes on other header files.The other classes are included in the implementation file of YourClass.How can a programmer define a class so that the copy constructor and operator=( ) functions are disabled? Why is it often appropriate for a class to disable these functions? When can you rely on the compiler to automatically generate these functions? When would you have to provide your own versions? (2 marks) The copy constructor and operator= are declared as private member functions and never implemented. Disabling them eliminates chances of some very messy errors. You can rely on the compiler when ... You would have to provide your own versions when ... For class Point: class Point { public: Point(int x, int y); ... private: int fX, fY; ... }; define the Point::Point(int x, int y) constructor in such a way as to enable const instances of this class to be declared. (1 mark) see notes;For a class Point with data members fX, fY: i) provide a partial declaration of the class showing a member operator+() function that performs a vector addition. (1 mark) class Point {public: Point(int x , int y = 0); Point operator+(const Point& other) const; . . .};ii) Provide a partial...