C++ Operator Overload Convert between ordinary strings and class String

Description

C++ Operator Overload Convert between ordinary strings and class String

#include <iostream>
using namespace std;
#include <string.h>             //for strcpy(), etc.
class String                    //user-defined string type
{
   private:/*from w  ww  .  ja v a2 s .  c  o m*/
       enum { SZ = 80 };         //size of all String objects
       char str[SZ];             //holds a C-string
   public:
       String()                  //no-arg constructor
       { str[0] = '\0'; }
       String( char s[] )        //1-arg constructor
       { strcpy(str, s); }    //   convert C-string to String
       void display() const
       { cout << str; }
       operator char*()          //conversion operator
       { return str; }        //convert String to C-string
};
int main()
{
   String s1;                   //use no-arg constructor
   char xstr[] = "Joyeux Noel! ";
   s1 = xstr;                   //use 1-arg constructor
   //   to convert C-string to String
   s1.display();
   String s2 = "Bonne Annee!";  //uses 1-arg constructor to initialize String
   cout << static_cast<char*>(s2); //use conversion operator
   cout << endl;                //to convert String to C-string
   return 0;                 //before sending to << op
}



PreviousNext

Related