自分の作ったString型のクラスをdouble型にキャストしようと思ったところ、キャスト演算子の存在を完全に忘れていて思いだすのにずいぶん時間がかかってしまったので、忘れぬようメモしておきます。
doubleにキャストできる簡単なストリング型クラスを作ると次のような感じになります。
こちらのサイトがオーバーロード可能/不可能な演算子一覧表がついていてわかりやすいです。
http://homepage2.nifty.com/well/Operator.html
, 演算子なんかもオーバーロードできるんですね。知らなかった。
doubleにキャストできる簡単なストリング型クラスを作ると次のような感じになります。
class MyString{
private:
char data_[512];
public:
inline MyString(char *string){ strcpy(data_, string); }
inline operator double() const{ return atof(data_); }
};
private:
char data_[512];
public:
inline MyString(char *string){ strcpy(data_, string); }
inline operator double() const{ return atof(data_); }
};
こちらのサイトがオーバーロード可能/不可能な演算子一覧表がついていてわかりやすいです。
http://homepage2.nifty.com/well/Operator.html
, 演算子なんかもオーバーロードできるんですね。知らなかった。