// _string.h
#include <iostream>
#include <string.h>
class _string
{
private:
char *m_data;
public:
_string();
_string(char *str);
_string(const _string& A);
_string& operator =(const _string &A);
~_string();
void showmsg();
};
#include "_string.h"
//_string.cpp
_string::_string()
{
//...
m_data = new char[1];
m_data = '\0';
}
_string::_string(char *str)
{
//构造函数,带参数
int len = strlen(str);
m_data = new char[len+1];
strcpy(m_data, str);
}
void _string::showmsg()
{
std::cout<<m_data<<std::endl;
}
_string::~_string()
{
//free( m_data );
delete m_data;
}
_string::_string(const _string &A)
{
delete m_data;
int len = strlen(A.m_data);
m_data = new char[len+1];
strcpy(m_data, A.m_data);
}
_string & _string::operator =(const _string &A)
{
if(this == &A)
{
std::cout<<"it's me!"<<std::endl;
return *this;
}
delete m_data;
int len = strlen(A.m_data);
m_data = new char[len+1];
strcpy(m_data, A.m_data);
return *this;
}
实现的不是很理想,或许有很多地方我没注意到,以后遇到问题再回来修改。目前也不知道有哪里不完善了。