题目:实现下面接口
class MyString { public: MyString(const char * data = NULL); MyString(const MyString & other); MyString & operator = (const MyString & rhs); ~MyString(); private: char * m_data; };
解答:
static char * copy_string(const char * data) { if (NULL == data) { data = ""; } int len = strlen(data); char * dup_data = new char [len + 1]; if (NULL != dup_data) { strcpy(dup_data, data); } return(dup_data); } MyString::MyString(const char * data) : m_data(copy_string(data)) { } MyString::MyString(const MyString & other) : m_data(copy_string(other.m_data)) { } MyString & MyString::operator = (const MyString & rhs) { if (&rhs != this) { MyString temp(rhs); std::swap(m_data, temp.m_data); } return(*this); } MyString::~MyString() { delete [] m_data; }
本来是很喜欢笔试这一环节的,但发现鲜有有意思的笔试题,容易的笔试题总跟着狗血的面试,更多的是不着边际的笔试题,这种情形就不要面试了。所以,可以的话,直接面试好了,要刷就刷吧。。。
希望各公司在社招的时候不要总出同一套题了,一来没意思,二来面试的人背都背熟了,笔试的意义在哪? 推出点有意思的题目吧。。。