在笔试过程中,一直被问到一些STL源码的实现,趁着昨天刚写,今天把String类的实现整理出来,方便以后面试的时候用到。
class myString { public: myString(const char* data=NULL); myString(const myString& data); myString& operator = (myString & data); virtual ~myString(); public: char* m_data; }; myString::myString(const char* data ) { if( data ) { m_data = new char[strlen(data) + 1]; strcpy(m_data, data); } else { m_data = new char[1]; *m_data = '\0'; } } myString::~myString() { delete[] m_data; } myString::myString(const myString& data) { m_data = new char[strlen(data.m_data) + 1]; if( !m_data ) exit(1); strcpy( m_data, data.m_data ); } myString& myString::operator=(myString& data) { if( this == &data ) return *this; else { delete[] m_data; m_data = new char[strlen(data.m_data) + 1]; strcpy( m_data, data.m_data ); return *this; } }
原文地址:http://blog.csdn.net/cout_sev/article/details/40108933