C++のクラス継承に関する質問です.
以下のように親クラスを記述したヘッダファイルbird.h,子クラスを記述したヘッダファイルmeziro.h,そして実行ファイルであるmain.cppを用意し「g++ -c main.cpp -o main.o」としてコンパイルを試みました.しかし結果はエラーであり,main.cppにおいて「'meziro' was not declared in this scope」というエラーが発生しました.もちろんいずれのファイルも同じディレクトリ上に配置しています. main.cppにおいては親クラス,子クラス共にincludeしているはずであるのに,なぜエラーが発生してしまうのでしょうか.
[bird.h]
class bird{
...
}
[meziro.h]
♯include "bird.h"
class meziro : public bird{
...
}
[main.cpp]
♯include "bird.h"
♯include "meziro.h"
int main(){
/オブジェクトを生成/
meziro a;
...
}
コンパイル
g++ -c main.cpp -o main.o
結果
'meziro' was not declared in this scope