字符串类MyString的定义

题目如图片所示,给了部分代码,根据书上例题填写。

img

img

img


所给代码如下:

#include
using namespace std;

class MyString
{
    public:
        const char * get_string()
        {
            return m_pbuf;    //取得字符串的首地址
        }
        const char * set_string(const char * p = NULL);    //将p指向的字符串保存在MyString类中
        const char * append(const char * p = NULL);        //将p指向的字符串追加到原有字符串之后
        MyString & append(MyString & s);                //将s对象中的字符串追加到当前对象的字符串之后并返回对象
        int get_length()
        {
            return strlen(m_pbuf);    //取得保存的字符串的长度
        }
    private:
        char * m_pbuf;
};
//只需要输入3个函数 
const char * MyString::set_string(const char * p)
{
    ......
}

const char * MyString::append(const char * p)
{
    ......
}

MyString & MyString::append(MyString & s)
{
    ......
}

int main()
{
    MyString str;
    char s1[200],s2[200];
    cin.getline(s1,200);    //gets(s1);
    cin.getline(s2,200);    //gets(s2);
    cout << "类的大小:" << sizeof(MyString) << endl;
    str.set_string(s1);
    //教材中的'\t'修改成空格
    cout << "字符串长度:" << str.get_length() << " "
         << str.get_string() << " "
         << "对象大小:" << sizeof(str) << endl;

    str.append(s2);
    cout << "字符串长度:" << str.get_length() << " "
         << str.get_string() << " "
         << "对象大小:" << sizeof(str) << endl;
    return 0;
}

你自己上网搜搜呗,网上的都有,我们无非就是上网搜就是GPT