obj.operator string()
私はこのようにそれを呼び出したときにそれが正常に動作しますが、...
(string)obj
結果は空の文字列です。
何が起こっているのですか?
クラス
class String : public std::string {
std::string str_;
public:
String() {};
String(const String & s) {
str_ = std::string(s.str_);
};
String(String && s) {
str_ = std::string(s.str_);
};
String(const string & s) {
str_ = std::string(s);
};
String(const char * s) {
str_ = std::string(s);
};
char & operator[](size_t i) {
return str_[i];
};
String & operator=(const String & str) {
if (this != &str) {
str_ = str.str_;
}
return *this;
};
String & operator=(String && str) {
if (this != &str) {
str_ = str.str_;
}
return *this;
};
bool operator==(const String & str) {
return str_ == str.str_;
};
bool operator!=(const String & str) {
return str_ != str.str_;
};
operator string() {
return str_;
};
};
[mcve]または[SSCCE(Short、Self Contained、Correct Example)](http://sscce.org)で質問してください** – NathanOliver
なぜあなたは 'std: :string'と別のメンバーインスタンスを使用していますか?あなたはスライスして、変換演算子を呼び出さない。 – LogicStuff
さて、C++をしばらく使用していないので、意味が分かりません – Seraph