MyString class In this assignment, you are to create MyString class that supports custom operators, such as addition, equality, and stream insertion and extraction. Following describes the member functions and operators of the MyString class: .MyString); . MyString(const char src); Mystring(const char* src): .MyString(const MyString& src): .MyString): .int GetLength) const; . char GetCharAt (int index) const; // default constructor /I constructor: creating a string from a char // constructor: creating a string from C-string /I copy constructor /I destructor // getter // getter // setter /I copy assignment operator I copy assignment operator II copy assignment operator // addition operator // addition operator /1 addition operator II addition assignment operator // addition assignment operator void SetCharAt (int index, char ch) const .MyString& operator. (const char rhs); .MyString& operator (const char* rhs); * Mystrings operator. (const MyString& rhs); MyString operator+ (const char rhs) const; MyString operator+ (const char* rhs) const; .MyString operator+ (const Mystring& rhs) const; MyString operator+ (const char rhs); MyStrings operator+s(const char* rhs); MyString& operator (const MyStrings rhs): . bool operator (const MyString& rhs) const; .bool operator! (const MyString& rhs) const; . friend ostreams operatorss (ostrean& os, const MyString& str);// strean insertion operator addition assignment operator // equal-to operator // equal-to operator /I not-equal-to operator /1 not-equal-to operator bool operator (const char* rhs) const; bool operator!-(const char* rhs) const . friend istream& operator> (istream& is, MyString& str);I // strean extraction operator You are provided with three startup files: home/cmpsc122/s19/hw3/mystring.h /home/cmpsc122/s19/hw3ystring.cxx /home/cmpsc122/s19/hw3/testmystring.cxx nystring.h has the class declaration, mystring.cxx has the implementation of member functions and operators, and testmystring.cxx has the main program that tests your MyString class. In this assignment, you have to complete the implementation of the member functions and operators in mystring.cxx. Do not change any code in mystring.h and testmystring.cxx. To compile and run the program, use the following commands sansi -pedantic -wall mystring.cxx testmystring.cxx- testmystring s ./testmystring If you pass all tests in testmystring.cxx, the following messages will be printed at the end of its output Congratulation! Your program passed al1 38 test cases. Otherwise, the program will output the number of test cases your program