2

C++ ヘッダーにインクルードを追加することはできますか? この例のように。

#ifndef SOMEH_H
#define SOMEH_H

#include <fstream>
int funcofsomekind(){
    ofstream myfile;
    myfile.open ("Stackoverflow.stack");
    myfile << "wolololol";
    myfile.close();
}
#endif
4

3 に答える 3

2

必ずヘッダーを追加#include <something.h>します。必要に応じて、ヘッダーを追加することがよくあります。

ただし、コードをヘッダーに入れることは非常に悪い考えと見なされます(あなたがしたように)。少なくとも、異なるソース ファイルのヘッダーを介して関数を 2 回インクルードすると、リンク時に関数定義が重複することになります。

于 2013-10-13T02:48:58.673 に答える
1

文字通りすべて#include(あなたの観点から) は、指定されたファイルからテキストを取得し、指定した場所に配置するだけです。はい、ヘッダーに入れることができます。

次のようなこともできます
vector.txt

huge vector .....

std::vector<int> v {
#include vector.txt
}
于 2013-10-13T02:48:48.953 に答える
1

はい、ただし、ヘッダーをインクルードする人は誰でも、自分の名前空間に多くの追加コードを取得します。より適切なのは、関数を cpp ファイルに入れ、関数プロトタイプに必要なヘッダーのみを含めることです。たとえば、ヘッダーに次のような関数がある場合

bool is_open(ostream &o);

fstream を含める必要があります。

于 2013-10-13T02:49:16.033 に答える