Programming_C++
C/C++のページ
概要
特徴
- 良い点
- ネイティブコードを生成して実行するだけあって実行速度はJavaやC#などの仮想マシンを介する言語より速い(各環境に合わせた動的な最適化+JITコンパイルなどによって逆転する場合もありうる)。メモリを直接操作できる。実行環境が軽い。遺産も豊富。画像処理・ゲームのような高速処理が必要な分野、組み込みのように実行環境の軽さが求められる環境なら有用。他の言語の遅い部分を補う用途で使われることもあり、大抵の言語と連携する(呼び出す)ためのインターフェイスは用意されている。
- 悪い点
- 古いだけあって不便さを引きずっている部分も多い、C++は中途半端にオブジェクト指向を取り入れたため、最早カオスすぎる。使いこなせる分にはマルチパラダイムな書き方もできてよいこともあるが、中途半端にしか使えないならさっさと他の言語をやることを推奨。ただし、ポインタくらいは理解してからにすべき。また、上記の使用例やQualnetと深く関わっていく人は逃げられないのであしからず。
開発環境
上記は評価版も混ざっているので、使用に日数制限があったりします。学生であればDreamSparkでProfessional Editionなどを落とせたりもします。
参考資料
研究室内の利用例
- Qualnetのコード
Q&A
- staticメソッドに関して
- staticメソッドの中でプリプロセッサを利用する場合、コードの一部が無効になるような記述は不可(有効になっていない#ifdef〜#endifなど)。
- 循環参照になってしまう
- class・構造体同士で互いに参照し合うように定義した場合,メモリの確保の仕方が分からずにエラーになる。メモリを確保できればいいので、実体をクラスのポインタで宣言しておけば、確保すべきメモリ量がポインタ変数用のメモリ量に確定するため、この問題を解決できる。ちなみに、javaやC#など、他の言語では自動的に解決してくれるので気にする必要がない。
- ダブルポインタ(**みたいな)て何
- 基本的には二元配列。もしくは、ポインタ変数の参照を渡して、メソッド内で操作したいとき。
Copyright(C) by 芝浦工業大学 工学部通信工学科, 森野研究室. All Rights Reserved.