C++ヘッダファイルにはどんなものを置くべきではありませんか?


まず説明します:以下のプログラムはC++言語を対象としています
ダイレクト・アップ・コード(プログラムにエラーがあります):
      file1.hファイルは以下の通りである.
#ifndef HEADER_FILE1

int a;

#define HEADER_FILE1
#endif
      file1.cppファイルは以下の通りです.
#include "file1.h"
      main.cppファイルは以下の通りです.
#include "file1.h"

int main()
{
	return 0;
}
上のプログラムは接続時にエラーが発生します.なぜですか.file 1にあるからです.cppとmain.cppにはaが同時に現れ、衝突し、衝突した.上記のプログラムは(正しいプログラム)に変更できます.
     file1.hファイルは以下の通りである.
#ifndef HEADER_FILE1

#define HEADER_FILE1
#endif
     file1.cppファイルは以下の通りです.
#include "file1.h"

int a;
     main.cppファイルは以下の通りです.
#include 
#include "file1.h"
using namespace std;

extern int a; //    ,      a
int main()
{
	cout << a << endl;

	return 0;
}
もちろん、プログラムの多くのファイルに円周率が使われている場合は、どうすればいいですか.以下の方法を使用できます.
     file1.hファイルは以下の通りである.
#ifndef HEADER_FILE1

const float pi = 3.14f;

#define HEADER_FILE1
#endif
     file1.cppファイルは以下の通りです.
#include "file1.h"

//           pi
    main.cppファイルは以下の通りです.
#include 
#include "file1.h"
using namespace std;

int main()
{
	cout << pi << endl;

	return 0;
}
上のプログラムは完全に正しいので、衝突は発生しません.
まとめ:1.ヘッダファイルにint aが表示されないでください.このような定義は、衝突しやすい(問題を再定義する).
                  2. ヘッダファイルにvoid fun(){}のような非インライン関数定義が現れず、衝突しやすい(再定義問題).
最後に、C++プログラムに対して、Cプログラムの中で、少し違います.