1

我编写了一个Tag将标签保存为字符串并允许对其进行操作的类。为了便于使用,我重载了operator=for 类字符串类型。到目前为止我得到了什么:

Tag& Tag::operator=(const std::string& rhs)
{
    setTag(rhs);
    return *this;
}

Tag& Tag::operator=(const char* rhs)
{
     setTag(rhs);
     return *this;
}

(其中和setTag()重载)。大部分用法都包含在此范围内:std::stringchar

 Tag tag1 = std::string("lala");
 Tag tag2;
 tag2 = std::string("lala2");
 Tag tag3;
 tag3 = "lala";

但是,最“基本”的一个不会计算:

 Tag tag4 = "lala";

它给了我这个错误:

 conversion from 'const char [5]' to non-scalar type 'Tag' requested

我怎样才能解决这个问题?我究竟做错了什么?

4

1 回答 1

5

最后一个不是operator=()- 你需要一个带有char const*.

Tag(char const* s);
于 2012-04-26T23:07:49.733 回答