Я не знаю, будет ли это работать для ваших целей, но одной из возможностей было бы сделать его параметром шаблона:
template <int size>
class A {
double y[size];
};
В этом случае вы, вероятно, захотите создать экземплярA в B вместо использования наследования.
Другая очевидная возможность - вместо этого использовать объект tr1::array
.Это также шаблон, поэтому идея почти такая же, но она уже написана, протестирована и работает, так что вы можете избежать всего этого.Если ваш компилятор не предоставляет классы TR1, Boost имеет в основном соответствующую реализацию (boost::array
).