零細ソフトウェア会社の平社員。中年なのに未だにプログラム作っているし社員数1桁なのに社長に嫌われて人生どん詰まり状態。落ちていく集中力と体力。なんの取り柄もない中年IT技術者がどん詰まり人生からの脱却にむけて足掻きます。オブジェクトは、使う前に初期化しよう初期化されていないオブジェクトの値を読み出そうとすると未定義な動作になってしまいます。そこで、使う前に必ず初期化されている事が重要になってくるのですが、規定の初期化ルール(いつ、どんな順番で初期化が行われるか)はあまりにも複雑なので単純に使う前に必ず初期化するようにするのがよいそうです。文章でメモを残す事も難しくなってきたので要点を箇条書きにする事にしました。読み直すという事で(^^;)初期化と代入は違う。混同しないように!C++ではコンストラクタ本体の実行前にデータメンバの初期化が行われる。初期化子が書かれていなければデフォルトコンストラクタが自動的に呼ばれる。このためコンストラクタ内で代入している場合、データメンバはデフォルトコンストラクタで初期化後にコピー代入演算子が呼ばれる事になる。初期化子によりコピーコンストラクタが1回呼び出されるだけの方が効率がよい。初期化は基底クラス→派生クラスの順に行われる。初期化子で全てのデータメンバを宣言順に初期化するようにしよう。明示的に初期化しなくても自動的に初期化されてしまうのだから意識できるように明示した方がよい。初期化子による初期化はデータメンバの宣言順に行われる。初期化子がその順になっていなくてもWarningすら出ないが、宣言順にそろえた方がよい。ローカルでない静的オブジェクトの初期化には注意が必要。「異なる翻訳単位で定義されたローカルでない静的オブジェクト」の初期化順はどうなるかわからない。当たり前ですが...ちなみに同じ翻訳単位の場合は記述がありませんでしたのでわかりません。決まっているのでしょうが、それによらないコードを書くべき何でしょう。ローカルでない静的オブジェクト初期化のために別の翻訳単位にあるローカルでない静的オブジェクトを使用していると初期化が行われないかもしれない。関数に対するstaticなオブジェクト(ローカルな静的オブジェクト)は、その関数の呼び出しで、制御が最初にその定義に達したときに、初期化される。関数で取得するようにすればよい。オブジェクトとして定義する。(singletonと違ってそのクラスのインスタンスが唯一である事を保証するわけではない)使う側では常にこの関数経由でインスタンスを取得するようにする全てのローカルでない静的オブジェクトをこのように置き換えれば初期化順は必要な順になるため考えなくてもよくなる。デッドロックしないように!!この方法はスレッドセーフではない!!スレッドが1つだけのうちに全てのstaticオブジェクトを初期化しておく解決方法もある。他の方法はここでは記述がない。マウスカーソルが表示されないことが多々あり、非常に不便な思いをしていました。format仕事で使う機会があり調べてみた。web上の情報はあまり多くなさそう。あっても正確な情報なのかはわからず。言われてしまいそうですが、つい最近までコレを知らなくてVMware上のWindowsの操作に困っていました。トラックパッドのボタンを押したまま2本指を動かすとドラ...増え続けるUSNジャーナルずいぶん前に気づいたのだが、個人PCのシステムボリュームのUSNジャーナルが際限なく増えていっている。すると問い合わせる度に「次のUSN」の位置がどんどん移動しているのだ。