抽象ベースクラスがあります。これは、いくつかのクラスを派生させるために使用されます。これらのクラスの一部のプロパティはすべてのクラスで共有されており、変更できないようにする必要があります。
10のクラスすべてで変数を共有するために、変数を静的にします。
class ABC{
public:
static int *anArray;
int index;
static int tot_index;
virtual void print()=0;
ABC(){index=tot_index++;};
virtual ~ABC(){};
};
これは正常に機能し、tot_indexにはインスタンス化されたクラスの数が含まれ、インデックスは各クラスの一意の識別子です。
私が抱えている問題は、* anArrayと派生クラスの数が実行時に設定され、クラスがインスタンス化された後、これらの値を変更したくないということです。
私は少し戸惑っています:
1)* anArray値はどこに設定すればよいですか?派生クラスのランダムなもので?
2)変数を変更できない場合は、constに設定する必要があります。しかし、コンパイル時の値がわからない場合、constに設定するにはどうすればよいですか?