• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c++ , template , ファイル分割 , 助けてください...)

C++のファイル分割でコンパイルエラーが発生する原因と対処方法

このQ&Aのポイント
  • C++のファイル分割によるコンパイルエラーの原因は、テンプレートクラスの実装がヘッダーファイルに含まれているためです。
  • 解決方法は、テンプレートクラスの実装を別のソースファイルに分離してコンパイルすることです。
  • 具体的には、coord.cppにテンプレートクラスの実装を移動し、コンパイル時にそれを参照するように指定します。

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

> クラスの宣言はヘッダファイル上で全て行なわないといけないのですか? 違います。テンプレートだからです。 本来であれば、exportを使って移出を行えば、ほぼ最初のようにソース分割できるのですが、Borland C++ Compilerでは(Visual C++でもGCCでも)exportをサポートしていないので使えません。

bitch_
質問者

お礼

丁寧な回答真に感謝いたします. http://d.hatena.ne.jp/shizu9/20080726/1217092697 というページを参考にしたら なんとなくですが, template がファイル分割できない理由が分かった気がしました. 初心者は陥りやすいミスのような気がしますが, c++ で分割コンパイルを解説している書籍, サイトってすごく少ないですよね ^^; 普通にヘッダファイルに書こうと思います. ありがとうございました.

その他の回答 (1)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

coordのコンストラクタやメンバ関数は、ヘッダファイルの中で定義してください。

bitch_
質問者

お礼

ありがとうございます. アドバイス通りに致しましたら, 問題なく実行する事ができました. クラスの宣言はヘッダファイル上で全て行なわないといけないのですか?

関連するQ&A