现在的位置: 首页 > 综合 > 正文

最常考的笔试题: MyString实现

2013年08月25日 ⁄ 综合 ⁄ 共 790字 ⁄ 字号 评论关闭

题目:实现下面接口

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;
}

 

 

本来是很喜欢笔试这一环节的,但发现鲜有有意思的笔试题,容易的笔试题总跟着狗血的面试,更多的是不着边际的笔试题,这种情形就不要面试了。所以,可以的话,直接面试好了,要刷就刷吧。。。

希望各公司在社招的时候不要总出同一套题了,一来没意思,二来面试的人背都背熟了,笔试的意义在哪? 推出点有意思的题目吧。。。

抱歉!评论已关闭.