C++講義ノート
KONOEのソフトウエアを開発・応用するために必要なC++言語に関する
解説を行ないます。
の順に解説します。
Cの文法を理解しているという前提で話を進めます。
- 値・式・文
- 型・型変換・プロモーション
- 構文要素・流れ制御
- リンク。C関数の呼出し
- メンバーデータとメンバー関数
- コンストラクタとデストラクタ
- 関数のオーバーロード
- 演算子のオーバーロード
- インナークラス
- 宣言の前方参照
- クラス定義
- メンバーデータの定義
- メンバー関数の定義
- ポインターを用いるべきところ
- 動的に生成されるオブジェクト
- newやdeleteの対象
- nullポインター。0が値として許される。
- 参照を用いるべきところ
- 参照が生成されるときに存在するオブジェクト
- 実体があることを保証(?)
- 引数として渡されるとき
- オブジェクトの有効期限
- ローカルなオブジェクト
- メンバーオブジェクト
- newとdelete
- メモリー管理
- 継承クラスと基底クラス
- メンバーの可視性・アクセス制御
- 関数のオーバーライド
- 仮想メンバー関数
- 継承クラスのコンストラクタとデストラクタ
- 多重継承
- 仮想継承
- 純粋仮想メンバー関数
- 仮想メンバーの実質化
- 抽象クラスの導入
まず、一般的なコーディングから。
- コンパイル単位
- ヘッダーファイルとソースファイル
- 一つのクラスを一つのファイルで定義する習慣。
- ライブラリの使用
- ヘッダーファイルの#include
- インクルードファイルの検索パス
- テンプレートの使用
- インスタンシエーションの制御・タイミング
- テンプレートデータベース
- Makefileの用意
- ファイルの依存関係
- 参照ディレクトリなどの記述
- コンパイラオプション
KONOEのコードを利用するための説明。すでにKONOEのライブラリ
ファイルは出来上がっているとします。
- KONOEのファイルの場所の指定
- KONOE_ROOT環境変数
- $(KONOE_ROOT)/includeの下にインクルードファイル
- $(KONOE_ROOT)/libにライブラリlibKonoe.a
- コンパイルのオプション
- $(KCC) -c -I$(KONOE_ROOT)/include you_source_file.cc
- テンプレートを使用する場合-pta -ptr $(KONOE_ROOT)/lib などが
必要な場合があります。
- プログラムのリンク
- $(KCC) -o demo demo.o -L$(KONOE_ROOT)/lib -lKonoe
- 場合によって-lm -lnlsなどを必要とする場合があります。
KONOEのコードくするための説明。
- 記述するクラス名の決定
- クラス名はKonoeで始まり、単語の頭を大文字で、他を小文字で書きます。
- ヘッダーファイルは.hh、ソースファイルは.ccを拡張子とします。
- 一つのファイルは一つのクラスを定義するのに用いられます。
- ヘッダーファイルのシンボリックリンク
- ヘッダーファイルは$(KONOE_ROOT)/includeから検索されますが、
ファイルのコピーを作らないで済すためにヘッダーファイルへの
シンボリックリンクを用意します。
- ソースのコーディング
- 既存のソースファイルと同じスタイルでコーディングします。
- ヘッダーファイルは二重定義を防ぐために#ifndef #endifの
範囲にクラスを定義します。この時定義されるシンボルは
__KONOEYOURCLASS_HHのようにファイル名の大文字列に__を付け、
後ろの.を_に置き換えたものを使っています。
- Makefileへのファイル名の追加
- 依存関係を記述します。実際のコンパイル手順はルールが記述されて
いるので空白にしておきます。
- HTMLファイルの準備
- クラスについて解説したHTMLファイルを用意します。
- prep_class_htmlコマンドを用いると下書きが出来ます。
- 内容を編集します。
- 同じディレクトリのindex.htmlにそのファイルへのリンクを追加します。

[intro/lecture/cplusplus.html] Last Modified : 29-Jul-1998.
KONOEコラボレーション
konoe-req@konoe.kek.jp