Click to go home
// class String implementation
#include < usual.h>
#include "String.hpp"
String::String() // default constructor
{
if((str=new char[1])!=NULL)
str[0]='\0';
else{
cout<<"No memory available!";exit(1); }
length=0;
}
String::String(char ch) // constructor accepting char
{
if((str=new char[2])!=NULL){
str[0]=ch;
str[1]='\0';}
else{
cout<<"No memory available!";exit(1); }
length=1;
}
String::String(char* strng) // constructor accepting char string
{
length=strlen(strng);
if((str=new char[length+1])!=NULL)
strcpy(str,strng);
else{
cout<<"No memory available!";exit(1); }
}
String::String(const String& obj) // constructor accepting String object
{
length=strlen(obj.str);
if((str=new char[length+1])!=NULL)
strcpy(str,obj.str);
else{
cout<<"No memory available!";exit(1); }
}
String::~String() // destructor
{
delete[]str;
}
int String::getLength() // returns length
{
return length;
}
char* String::getString() // returns char string
{
return str;
}
String String::operator =(const String& obj) // operator= overload
{ // with another String object
delete []str;
length=strlen(obj.str);
if((str=new char[length+1])!=NULL)
strcpy(str,obj.str);
else{
cout<<"No memory available!";exit(1); }
return obj;
}
String String::operator =(char* strng) // operator= overload
{ // with char string
String temp(strng);
*this=temp;
return *this;
}
String String::operator =(char ch) // operator= overload with char
{
delete[]str;
if((str=new char[2])!=NULL){
str[0]=ch;
str[1]='\0';}
else{
cout<<"No memory available!";exit(1); }
length=1;
return *this;
}
String String::operator +(const String& obj) // operator+ with another
{ // String object
String temp(obj);
temp.length+=length;
delete []temp.str;
if((temp.str=new char[temp.length+1])!=NULL){
strcpy(temp.str,str);
strcat(temp.str,obj.str);}
else{
cout<<"No memory available!";exit(1); }
return temp;
}
String String::operator +(char *strng) // operator+ with char string
{
String temp(strng);
temp=temp+*this;
return temp;
}
String String::operator +(char ch) // operator+ with char
{
String temp(ch);
temp=temp+*this;
return temp;
}
ostream& operator<<(ostream& out,String& obj) // operator<< overload
{ // friend function
out<< obj.getString();
return out;
}
void String::printString() // prints str and length to standard out
{
cout<<"str: "<< str<<" length: "<< length<< endl;
}
Next Page - Student.cpp
Jump to:
hpp |
Employee.cpp |
FullTime.cpp |
SalesPerson.cpp |
Driver
Go to top