正しく質問したかどうかはわかりませんが、説明させてください。
まず、宣言と定義の違いを説明するこの記事を読みました: http ://www.cprogramming.com/declare_vs_define.html
次に、以前の調査から、ヘッダーファイルで変数と関数を定義することは悪い習慣であることがわかっています。これは、リンクフェーズ中に、同じ名前に対して複数の定義があり、エラーが発生する可能性があるためです。
しかし、なぜこれがクラスで起こらないのですか?別のSOの回答( 定義と宣言の違いは何ですか?)によると、以下はクラスDEFINITIONになります。
class MyClass {
private:
public:
};
上記の定義がヘッダーファイルにある場合。次に、おそらく、そのヘッダーを#includeする複数の.cppファイルを持つことができます。これは、クラスが複数の.oファイルでコンパイルされた後に複数回定義されていることを意味しますが、それほど問題は発生しないようです...
一方、ヘッダーファイルで定義されている関数の場合、明らかに問題が発生します...私が理解していることから...多分?
では、クラス定義の何がそんなに特別なのですか?