#include <iostream>
#include <string.h>
using namespace std ;
class String
{
public:
String(const char* str = NULL) ; //构造函数
~String(void) ; //析构函数
String(const String &other) ; //拷贝构造函数
String &operator = (const String &other) ; //赋值函数
private:
char * m_data ;
};
String::String(const char * str) //实现构造函数
{
if(str == NULL)
{
m_data = new char[1] ;
*m_data = '\0' ;
}
else
{
int nLength = strlen(str) ;
m_data = new char[nLength+1] ;
strcpy(m_data,str) ;
}
}
String::~String(void) //实现析构函数
{
delete [] m_data;
}
String::String(const String &other) //实现拷贝构造函数
{
int nLength = strlen(other.m_data) ;
this->m_data = new char[nLength+1] ;
strcpy(this->m_data,other.m_data) ;
}
String &String::operator =(const String &other) //实现赋值函数
{
if(this == &other)
{
return *this ;
}
delete [] m_data ;
int nLength = strlen(other.m_data) ;
this->m_data = new char[nLength+1] ;
strcpy(this->m_data,other.m_data) ;
return *this ;
}
自主编程实现String类的构造函数,析构函数,拷贝构造函数,赋值函数
最新推荐文章于 2022-04-05 17:28:50 发布