C++初心者です.
下記のコード例のような場合……
関数の実装を書いている Func.cpp
では,関数の宣言が書かれている Func.h
を include する必要は無いです.
無いのですが……
自分は 何故か Func.cpp
に #include "Func.h"
を書いてしまいます.
でも,その理由が自分でもよくわかりません.
Func.cpp
なるファイルを用意した時点で半ば機械的に書いてるだけ?(単なる習慣?)- 「対応しているヘッダがこれだよ」っていうのを明記したいとかそういう何か?
あるいは,IDEでincludeの記述箇所からヘッダに飛べるみたいな利便性? - オーバーロード不可能な形でシグネチャを書き損じた場合とかにコンパイルエラーが欲しい?(限定的だなぁ)
- ???
考え出したら何もかもわからなくなってきました.
皆さん,このような場合,
#include "Func.h"
を書きますか? 書きませんか?- その理由って何でしょうか?
(まぁ,書かない側の理由は「要らないから」になるのでしょうけど)
C++
1//[Func.h] 2#pragma once 3 4class X; 5 6int Func1( int, double ); 7int Func2( const X& );
C++
1//[Func.cpp] 2#include "Func.h" //←※コレは不必要なinclude※ 3#include "X.h" //(これはclass X の定義が書かれているやつ) 4 5int Func1( int, double ){ /*...(略)*/ } 6int Func2( const class X& ){ /*...(Xの定義が必要な記述.略)*/ }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。