2017年11月11日
《その117》 変換関数
変換関数
次のクラス C で、
operator int(), operator unsigned(), operator char() は、それぞれ、
・C型を int型に変換する、
・C型を unsigned型に変換する、
・C型を char型に変換する
変換関数です。
変換関数 operator Type()
------------------------------------------------------------
#include <iostream>
class C {
int a_;
unsigned b_;
char c_;
public:
C(int a, unsigned b, char c)
: a_(a), b_(b), c_(c) { }
operator int() const { return a_; }
operator unsigned() const { return b_; }
operator char() const { return c_; }
};
int main() {
C s(5, 100, 'A');
std::cout << int(s) << '\n';
std::cout << (int)s << '\n';
std::cout << static_cast<int>(s) << '\n';
std::cout << unsigned(s) << '\n';
std::cout << char(s) << '\n';
unsigned x; x = s; // 暗黙の型変換
std::cout << x << '\n';
}
------------------------------------------------------------
C型クラスオブジェクト c1 を
・int型に型変換すると 5 に、
・unsigned型に型変換すると 100 に、
・char型に型変換すると 'A' に
変換されます。
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/6957290
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック