ありがちなミス

「ありがちなミス」の編集履歴(バックアップ)一覧に戻る

ありがちなミス - (2010/06/24 (木) 15:58:58) のソース

== 見落としがちな罠 ==
 '''暗黙の型変換 double → int'''
 for(i=0, sum=0; i<10; i++)
   sum += 1/10;
 cout << sum
 
 [結果]
 0

 '''名前空間'''
 本来は解決演算子 std:: がいるもの↓
 cout, cin
 string, vector, list, ... などSTL系

 '''セミコロンの有無'''
 中括弧の後にセミコロン }; がくるもの
 ''関数のプロトタイプ宣言''
 ''クラス宣言''
 ''do-while文''

== 厄介なエラーの元凶 ==
 '''「一つの宣言に複数の型が定義されています」'''
 '''"expected unqualified-id before 'using'"'''
 単に class 宣言の最後にセミコロンが無いだけ
 > };

 '''やたらモジュール化'''
 '''スコープが違ってる'''
 gsl_vector は元々がポインタなので,関数に渡した先で新たにベクトルを取得するときは,ポインタのポインタを渡すことになる。

 '''ファイルを開くときは,純粋な文字列を渡す'''
 string ではだめ。→ '''.c_str()'''を使う。
 特に ostringstream os を用いているときは,'''os.str().c_str()'''となる。

 '''はじめからないものをデストラクタに削除させる'''
 コンストラクタで NULL 初期化でもしておかないと、
 結局生成せずに終了したときに謎のセグメンテーションエラーになる。
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。