class mystring {
private:
string s;
public:
mystring(string ss) {
cout << "mystring : mystring() : " + s <<endl;
s = ss;
}
/*! mystring& operator=(const string ss) {
cout << "mystring : mystring& operator=(string) : " + s <<endl;
s = ss;
//! return this;
return (mystring&)this; // why COMPILE ERROR
} */
mystring operator=(const string ss) {
cout << "mystring : mystring operator=(string) : " + s <<endl;
s = ss;
return *this;
}
mystring operator=(const char ss[]) {
cout << "mystring : mystring operator=(char[]) : " << ss <<endl;
s = ss;
return *this;
}
};
mystring str1 = "abc"; // why COMPILE ERROR
mystring *str2 = new mystring("bcd");
Так При возникновении вопросов являютсяКак std :: string перегружает оператор присваивания?
как сделать правильный MyString & opeartor = перегрузка? То есть, как я мог бы вернуть ссылку, а не указатель? (Мы могли Tranfer между ссылкой и указателем в C++?)
Как сделать правильный оператор mystring = перегрузка? Я думал, что исходный код будет работать нормально, но оказывается, что я до сих пор не могу назначить const char [] для mystring, как если бы я не перегружал оператор =.
спасибо.
Ему нужны оба, если он хочет выполнить назначение ранее существовавших объектов. – Potatoswatter