#ifndef MYSTRING_H
#define MYSTRING_H
#include <iostream>
#include <stddef.h>
#include <string.h>
class MyString
{
public:
MyString(const char* str);
bool operator > (const MyString &mystring);
MyString& operator = (const MyString &mystring);
MyString operator + (const MyString &mystring);
bool operator == (const MyString &mystring);
~MyString();
void display();
private:
char * m_mystring;
};
#endif // MYSTRING_H
#include "mystring.h"
MyString::MyString(const char* mystring)
{
if(mystring==NULL)
{
m_mystring = new char[1];
*m_mystring ='\0';
}else
{
int len = strlen(mystring);
m_mystring = new char[len + 1];
strcpy(m_mystring,mystring);
}
}
MyString& MyString::operator =(const MyString &mystring)
{
if(this == &mystring)
{
return *this;
}
delete[] m_mystring;
int len = strlen(mystring.m_mystring);
this->m_mystring = new char[len + 1];
strcpy(this->m_mystring,mystring.m_mystring);
return *this;
}
MyString MyString::operator +(const MyString &mystring)
{
int len =strlen(this->m_mystring) + strlen(mystring.m_mystring);
MyString str("");
str.m_mystring = new char [len + 1];
memset(str.m_mystring,0,len + 1);
strcpy(str.m_mystring,this->m_mystring);
strcat(str.m_mystring,mystring.m_mystring);
return str;
}
bool MyString::operator ==(const MyString &mystring)
{
if(strcmp(this->m_mystring,mystring.m_mystring))
{
return true;
}
else
{
return false;
}
}
bool MyString::operator >(const MyString &mystring)
{
if(strlen(this->m_mystring) > strlen(mystring.m_mystring))
{
return true;
}
else
{
return false;
}
}
MyString::~MyString()
{
delete[]m_mystring;
}
void MyString::display()
{
for ( int i =0; i < strlen(this->m_mystring);i++)
{
std::cout<<this->m_mystring[i];
}
}
這裏寫代碼片