2016年9月15日木曜日

c++:クラスのメンバ関数

なんかアホみたいな事でハマったのでメモ。

クラスを書く時、最近はヘッダファイルの中にメンバ関数も全部入れるのが
楽なのでそうやっている。正しいのかどうかは知らんがデバッグもしやすいし、
別のプロジェクトにも持っていきやすいのでそうしている。

今回新しくプロジェクトを作って、そのようにクラスのヘッダファイル内に
メンバ関数を入れてみた所、ビルド時にエラー。

いつもの感じでやってるのになんで!?
結構ハマった・・。

良く調べてみたら、ヘッダファイルと一緒にcppファイルも用意しており、
そういう場合はcppにメンバ関数を入れないとダメなのね。

file.hの中身
class test{
 void init(void);
};

void test::init(void){
}

file.cppの中身
#include "file.h"

この状態ではエラー。

そんな事どこにも書いてないよ!いや、書いてあるかもだけど、わかり
にくいよ!

それに気づいたので、cppファイルを削除したらあっさりビルド通った。

なんだかなぁ・・。

0 件のコメント:

コメントを投稿