1

私は小さなプロジェクトに取り組んでいる趣味のプログラマーです。クラス定義を宣言から分離すると、クラスの操作が難しくなるだけであることがわかりました。ただし、互いのメンバー関数に依存する複数の定義またはクラスに関連するコンパイラおよびリンカーのエラーにより、強制的に実行する必要があります。クラス定義を宣言から分離せずにエラーを回避する方法はありますか? それができない場合、クラスを 1 つのファイルに保持する方法はありますか? ソースファイルを含めるべきではないということを読み続けています。

4

1 に答える 1

1

はい、そうですが、複雑なクラスがある場合は、コンパイル時間が大幅に長くなる可能性があります。すべてをクラスの「内部」に保持するのと同じくらい簡単です。

#ifndef __ACLASS_H__
#define __ACLASS_H__

class A {
public:
  A() : i(0) {}

  int getI() { return i; }
  void setI(int _i) { i = _i; }

protected:
  int i;
};
#endif

#ifndefディレクティブは、複数の宣言を避けるために必要です。

可能な場合 (クラスへのポインターなど) に前方宣言を使用すると、クラスの依存関係ツリーの複雑さも軽減されます。

于 2013-06-15T08:48:43.773 に答える