Я пишу класс, который не хочу создавать. Все его члены статичны. Этот класс представляет собой периферийное устройство микроконтроллера. Поскольку в микроконтроллере есть только один экземпляр этого периферийного устройства, мне не имеет смысла создавать экземпляры этого класса. Класс группирует только данные и функции этого периферийного устройства.
Один из элементов данных класса - это массив, размер которого пользователь класса должен определить во время компиляции. Если бы я мог создавать объекты этого класса, я бы мог инициализировать константы в списке инициализаторов конструктора, но я действительно не хочу создавать экземпляры этого класса. Возможно, я мог бы использовать шаблоны и установить размер массива в качестве параметра шаблона, но мне нужно было бы использовать что-то вроде my_class<5>::do_something()
для каждого вызова члена. Есть ли более простой способ решить эту проблему? Я бы хотел сделать свой класс примерно таким:
class my_class
{
private:
static const int _size;
static int _array[_size];
public:
static void array_size(int size) { _size = size; }
static void do_something() { /* .... */ }
};
static void array_size(int size) { _size = size; }
должно делать? - person wally   schedule 01.01.2017