[[ssacontents]] * C++の「使ったら負け」シリーズ [#g3e2033e] ** 超初級編 [#hc2fe4e8] *** 最低レベルの警告メッセージ・もしくは抑止機能 [#h9da5c8d] ほとんどの環境で、ビルドオプションに「警告レベル」という設定があります。~ これは、何も考えずに最大レベルにするのが正解。~ 最低レベル、もしくは警告なしの設定にしてはいけません。それは、丸裸で戦場に行くようなものです。 ** 初級編 [#k7607769] *** #defineによるマクロ定義 [#cc11c2a6] 言うまでもありませんが、#defineによるマクロは強力すぎて、バグの温床であり、デバッグを困難にする要因です。できるかぎり使わないに越したことはありません。~ 正当な理由なく#defineマクロを使ってしまったら、あなたの「負け」です。 *** Cスタイルのキャスト [#c7e6cba6] *** ヘッダファイルでの using namespace [#q77ebee3] *** グローバル変数 (デバッグ用途以外で) [#c644374e] *** マジックナンバー [#p736465d] ** 中級編 [#l62a72b5] *** クラスのfriend宣言 [#j21f6f25] *** クラスの前方宣言 [#a3a7a6a7] *** void* [#o3c3208e] *** NULLなどCライブラリ由来のマクロ定数 [#mf7b7b69] *** union [#fecb152e] *** #ifdef #if defined() 等による条件コンパイル [#ua869d4f] ** 上級編 [#gd26ddcb] *** reinterpret_cast [#yc9cacf0] *** ヌルポインタチェック [#h9f43832] *** switch文 [#w3edaa12] *** 生delete文 [#jbbe4243] *** マネージャーという名前を含むクラス名 [#d496b109] ** 最上級編 [#v5f7b084] *** virtual [#t6f78602]