タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

C++に関するNagiseのブックマーク (4)

  • 続 C++ の const の問題点 - NyaRuRuが地球にいたころ

    C++ の const の問題点 - NyaRuRuの日記 の続き. const 記憶域に配置されたオブジェクトのコンストラクタ内から,非 const なポインタを取り出せそうにみえる.こんなのも合法なんだろうか.C++ むずい. (追記) Unspecified らしい.kinaba さんに教えてもらった.文末にも追記. class X { public: X(X **ptr) { *ptr = this; } private: int dummy_; }; X* xptr = NULL; const X x(&xptr); 他の例.const メンバ関数の中で,メンバから読み出した値を使って環境を書き換えたら,その結果として自分自身が書き換わるようなケース.C++ むずい. #include <iostream> class Hauhau { public: Hauhau() : ag

    続 C++ の const の問題点 - NyaRuRuが地球にいたころ
    Nagise
    Nagise 2009/08/03
    D言語のconstとかScalaのvalとかに教訓が活かされている感じ。
  • でるよでるよー

    目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1078 記事 - 2 コメント - 26189 トラックバック - 363 ニュース 著作とお薦めの品々は 著作とお薦めの品々は 東方熱帯林へ。 わんくま 東京勉強会#2 C++/CLI カクテル・レシピ 東京勉強会#3 template vs. generics 大阪勉強会#6 C++むかしばなし 東京勉強会#7 C++むかしばなし 東京勉強会#8 STL/CLRによるGeneric Programming TechEd 2007 @YOKOHAMA C++C++/CLI・C# 適材適所 東京勉強会#14 Making of BOF 東京勉強会#15 状態遷移 名古屋勉強会#2 WinUnit - お気楽お手軽UnitTest CodeZine Cで実現する「ぷちオブジェクト指向」 CUnitによるテスト駆

  • C++に実行時の型なんてものはない - 神様なんて信じない僕らのために

    は嘘でした。k.inaba さんの指摘で修正。 と、まで書くと言い過ぎか?*1 また、オーバーロードされた演算子の動作を特別に考える必要もない。 演算子オーバーロードした演算子はメンバ関数と同じ動きをする。 virtualでない演算子は、演算子を呼び出した対象オブジェクトの「変数の型」によって決定される virtualな演算子は、演算子を呼び出した対象オブジェクトの「実行時の型」によって決定される 要するに、メソッドと同じ C++で演算子オーバーロードしたときの演算子決定基準について調べた - 矢野勉のはてな日記 ちょっと違う。 単に同じ動きをするだけでなく、同じものだ。 クラスに対しオーバーロードされた演算子はメンバ関数のシンタックスシュガーに過ぎない。 また、メンバ関数であるとは限らないので、メソッドと同じとすべきではない。 あと、少なくとも、C++は実行時の型情報を元にメンバ関数を呼

    C++に実行時の型なんてものはない - 神様なんて信じない僕らのために
    Nagise
    Nagise 2008/09/24
  • C++で演算子オーバーロードしたときの演算子決定基準について調べた - 矢野勉のはてな日記

    C++すみませんしょぼい話です。『ジョエル・オン・ソフトウェア』の下記記事で 間違ったコードは間違って見えるようにする - The Joel on Software Translation Project C言語では i = j * 5 は j を5倍する以外の意味はないけども、C++の場合は、i = j * 5 が何を意味するかは i と j の型を調べ、型の定義を見て、型にサブクラスがないかどうかをチェックし、もしあったら、実際には i あるいは j がそのサブクラスの方だったりしないかどうかチェックして初めて、 i = j * 5 の意味がわかる、という話があります。この話をtwitterにぽろぽろ書いているうちに、自分がC++の演算子オーバーロードについて無知であることが分かったので実験コードを書いてました。 その実験コード書きながらもtwitterにぽろぽろ書いてたんですが、何度

    Nagise
    Nagise 2008/09/24
  • 1