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::stringますchar)。使用法のほとんどはこれによってカバーされます:

 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 に答える