C++ Operator Overload '+' operator concatenates strings for custom string class

Description

C++ Operator Overload '+' operator concatenates strings for custom string class

#include <iostream>
using namespace std;
#include <string.h>      //for strcpy(), strcat()
#include <stdlib.h>      //for exit()
class String/*from ww  w.ja  va 2s .c o  m*/
{
   private:
   enum { SZ=80 };                //size of String objects
   char str[SZ];                  //holds a string
   public:
   String()                       //constructor, no args
   { strcpy(str, ""); }
   String( char s[] )             //constructor, one arg
   { strcpy(str, s); }
   void display() const           //display the String
   { cout << str; }
   String operator + (String ss) const  //add Strings
   {
      String temp;                //make a temporary String
      if( strlen(str) + strlen(ss.str) < SZ )
      {
         strcpy(temp.str, str);   //copy this string to temp
         strcat(temp.str, ss.str);  //add the argument string
      }
      else
         { cout << "\nString overflow"; exit(1); }
      return temp;                //return temp String
   }
};
int main()
{
      String s1 = "\nMerry Christmas!  ";   //uses constructor 2
      String s2 = "Happy new year!";        //uses constructor 2
      String s3;                            //uses constructor 1
      s1.display();
      s2.display();
      s3.display();
      s3 = s1 + s2;                         //add s2 to s1,
      //   assign to s3
      s3.display();
      cout << endl;
      return 0;
}



PreviousNext

Related