Hello.

Please if somebody has the time and willingness to do this program in C++ I would be very happy and grateful.

Define a class Cubic that stores the coefficients of a polynomial of degree 3 in a dynamically allocated array of doubles. Supply the "big three" memory management functions. Use this class to demonstrate

(a) the difference between initialization

Cubic s;

Cubic t = s;

and assignment operation

Cubic s;

Cubic t;

s = t;

(b) the fact that all constructed objects are automatically destroyed

(c) the fact that the copy constructor is invoked if an object is passed by value to a function

(d) the fact that the copy constructor is not invoked when a parameter is passed by reference

(e) the fact that the copy constructor is used to copy a return value to the caller.

Supply a member function which calculates the value of the polynomial for a given argument value. Overload + and - operators for addition and subtraction of two polynomials and the unary operator * which return true or false when the corresponding cubic function has or has not critical points. (We say that a function f(x) has a critical point z when its derivative has value null at this point, i.e. f '(z) = 0.) Overload the stream operators << and >>. Demonstrate all these functions and operators.