2009-12-01から1ヶ月間の記事一覧

explicitで暗黙の型変換を防止する

先日書いた日記の補足。 以下のようなコードを書いてみると分かりますが、、、 #include <iostream> #include <cassert> using namespace std; class M { public: M(int i_):i(i_) { cout << "引数1個のコンストラクタだよ" << endl; } ; M(const M& m_):i(m_.i) { cout << "コ</cassert></iostream>…

Cクイズ こっちわからん><

/* MyTypeの定義 */void set(MyType m, int val); void inc(MyType m); void print(MyType m);int main(void) { MyType m; set(m, 0); /* mを0にセット */ inc(m); /* mをインクリメント */ print(m); /* 1と表示される */ return 0; }/* 各関数の実装 */こ…

C++クイズ explicitコンストラクタ編

先輩から以下のような問題を出された。 【問題】 class MyClass { public: MyClass(int m_):m(m_) {} ; private: int m; }; のようなクラスがある場合、MyClass m1(0); // A MyClass m2 = 0; // B どっちの初期化もできちゃうよ。 この2つの違いはなーに? …