私はStringクラスを書いています。次のような文字列を割り当てられるようにしたいと思います。
a = "foo";
printf(a);
a = "123";
printf(a);
int n = a; // notice str -> int conversion
a = 456; // notice int -> str conversion
printf(a);
文字列から整数への変換には、operator =()メソッドをすでに割り当てています。逆のメソッドを実行できるように、別のoperator =()を宣言するにはどうすればよいですか?
私が別のものを宣言するとき、それは前のものを上書きするようです。
String::operator const char *() {
return cpStringBuffer;
}
String::operator const int() {
return atoi(cpStringBuffer);
}
void String::operator=(const char* s) {
ResizeBuffer(strlen(s));
strcpy(cpStringBuffer, s);
}
bool String::operator==(const char* s) {
return (strcmp(cpStringBuffer, s) != 0);
}
//void String::operator=(int n) {
// char _cBuffer[33];
// char* s = itoa(n, _cBuffer, 10);
// ResizeBuffer(strlen(_cBuffer));
// strcpy(cpStringBuffer, _cBuffer);
//}