タグ

ブックマーク / pknight.hatenablog.com (4)

  • int();とint(i);とint(1);の違いについての謎 - (void*)Pないと

    int i;とint(i);の違いについて - (void*)Pないと の続きです。 括弧ありとなしで同じかと思ったんですが、どうも渡す引数によって挙動が変わるようです。 とりあえず以下の例を。 int main () { int(); int(i); int(100); return 0; } これらは全て問題なくコンパイルが通ります。一体どういう風に解釈されているのかちょっとわかりません。 iの場合は変数宣言になり、引数無しや数値の場合は一体どういう風に解釈されているのかわかりません。 ということで一旦クラスにしてコンストラクタがどのように呼ばれているのか検証してみました。 #include <iostream> using namespace std; class CSample { public: CSample () { cout << "CSample()" << endl;

    int();とint(i);とint(1);の違いについての謎 - (void*)Pないと
  • int i;とint(i);の違いについて - (void*)Pないと

    色々勉強したり試したりしてて分からないことがあったので記録。 以下のようなコードなのですが int main () { int(i); int j; return 0; } CでもC++でも問題なく動きます。 つまりこれは変数宣言する際に、括弧で囲っても囲まなくてもまったく同じ意味になると考えて良いんでしょうか? また、デフォルト値の設定も可能です。 int main () { int(i) = 10; int j = 20; return 0; } これもCでもC++でもちゃんと動きます。 さらにC++の場合は、コンストラクタに渡すという意味で下記のようにも書けます。intだと分かりづらいのでクラスを定義して実験してみます。 class CSample { public: CSample () { cout << "CSample()" << endl; } CSample (int)

    int i;とint(i);の違いについて - (void*)Pないと
  • 関数アダプタ バインダ - (void*)Pないと

    http://www.geocities.jp/ky_webid/cpp/library/025.html 関数アダプタとは他の関数オブジェクトや値を、関数オブジェクトに組み合わせて新しく作成する関数オブジェクトということらしい。 これだけじゃ何のことかさっぱりわかりませんね。というわけで実際の処理を見ていきたいと思います。 関数アダプタを作るためには標準で提供されているstd::binary_functionやstd::unary_functionから派生しないといけないそうです。 因みに定義は以下になります。 template <class Arg, class Res> struct unary_function{ typedef Arg argument_type; typedef Res result_type; }; template <class Arg1, class Ar

    関数アダプタ バインダ - (void*)Pないと
    agw
    agw 2011/09/02
    ostream_iteratorの使用例。
  • std::swap、std::max、std::min - (void*)Pないと

    http://www.geocities.jp/ky_webid/cpp/library/034.html 補助的な関数です。 std::swap関数 値の入れ替えをするだけの関数です。 #include <iostream> #include <algorithm> using std::cout; using std::endl; int main () { int a = 10; int b = 20; cout << "a = " << a << endl; cout << "b = " << b << endl; std::swap(a,b); cout << "a = " << a << endl; cout << "b = " << b << endl; return 0; } $ main a = 10 b = 20 a = 20 b = 10 std::max関数 渡され

    std::swap、std::max、std::min - (void*)Pないと
  • 1