在字符串类c ++中实现关系运算符

时间:2017-09-12 16:18:38

标签: c++ string operator-overloading

我尝试在我自己的String类中重载关系运算符。这个类看起来如何:我将字符串存储在data里面,这是一个数组。

class MyString
{
public:

    //default constructor, create an empty string
    MyString() 
    {

    };

    //create a string containing n copies of c
    MyString(size_t n, char c) :data(new char[n]), data_length(n)
    {
        for (size_t i = 0; i < n; i++)
        {
            data[i] = c;
        }
    };

    //create a string from a null-terminated array
    MyString(const char *cp):data(new char[std::strlen(cp)]), data_length(std::strlen(cp))
    {
        //std::copy(cp, cp + std::strlen(cp), data);
        std::copy(cp, cp + std::strlen(cp), stdext::checked_array_iterator<char*>(data, data_length));
    }

    //destructor
    ~MyString()
    {
        //free the array
        delete[] data;  
    };


    //relational operators
    bool operator==(const char* lhs, const char* rhs)
    {

    }

private:
    size_t data_length;
    char* data;
};
  1. 编译器说不能超过2个args,所以我理解lhs必须隐含在这样:

    bool operator==(const char* rhs)
    {
    
    }
    
  2. 但是,我的问题是: 假设我比较了两个位于以null结尾的数组内的字符串,我怎样才能在循环中比较它们?

0 个答案:

没有答案