题目:实现下面接口
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;
}
本来是很喜欢笔试这一环节的,但发现鲜有有意思的笔试题,容易的笔试题总跟着狗血的面试,更多的是不着边际的笔试题,这种情形就不要面试了。所以,可以的话,直接面试好了,要刷就刷吧。。。
希望各公司在社招的时候不要总出同一套题了,一来没意思,二来面试的人背都背熟了,笔试的意义在哪? 推出点有意思的题目吧。。。