1.クラステンプレートを利用したクラスの書き方 C++テンプレートを利用したクラスを初めて書いてみた。 とろが、リンクでエラー。 いくつか存在するC++のサイトサンプルに従い作ったがうまくいかない。 色々調べた結果、以下のことがわかった。 ・クラステンプレートを利用したい場合、よくやるクラスメンバの 定義と異なりクラスメンバの定義もヘッダファイルに記述する 必要がある。(-->要はヘッダで完結しソースファイルを作らない) ・externをつけるとソースファイル(.cpp)に書くことも可能らしい。 但し、externに対応しているコンパイラが多くないため、いい方法では ないらしい。(VisualStudio2005はだめらしい) これは知らないとプログラムがビルドできない知識なのに、書いていない サイト(書籍)が結構ある。んーなんでだろ? とりあえず自分がリファレンスとして利用している 手元の書籍には書いて 無いっぽい。C++の言語仕様が複雑なため、網羅し切れていないケースも 少ないということなのか? Effective C++など有名な書籍を読めばそれくらいのこと書いてあるのかな。 例: // ★クラステンプレートの利用(ヘッダファイルで完結する必要がある) // .hppファイル template<int R, int C> class Matrix { public: Matrix(); ~Matrix(); void func(); }; template<int R, int C> Matrix<R, C>::Matrix() { // コンストラクタ } template<int R, int C> Matrix<R, C>::~Matrix() { // デストラクタ } template<int R, int C> void Matrix<R, C>::func() { // メンバ関数 } // .hppファイル終わり そういえば、テンプレートはデストラクタ関連で何か制限があるとか どこかに書いてあったような...。なんだっけなあ...。 2.ヘッダファイル拡張子 ヘッダファイル拡張子の慣習の中には、以下のような慣習があるらしい。...