столько, сколько нужно и не больше.
Конструктор должен перевести объект в работоспособное состояние, следовательно, как минимум, ваши переменные класса должны быть инициированы. То, что инициированные средства могут иметь широкое толкование. Вот надуманный пример. Представьте, что у вас есть класс, который отвечает за предоставление N! на ваше приложение для звонков.
Один из способов реализовать это состоит в том, чтобы конструктор ничего не делал, с функцией-членом с циклом, который вычисляет необходимое значение и возвращает.
Другой способ реализовать это - иметь переменную класса, которая является массивом. Конструктор установит все значения в -1, чтобы указать, что значение еще не было вычислено. функция-член будет выполнять ленивую оценку. Он смотрит на элемент массива. Если это -1, он вычисляет его, сохраняет и возвращает значение, в противном случае он просто возвращает значение из массива.
Другой способ реализовать его будет таким же, как и последний, только конструктор будет предварительно рассчитывать значения и заполнять массив, чтобы метод мог просто извлечь значение из массива и вернуть его.
Еще один способ реализовать это - сохранить значения в текстовом файле и использовать N в качестве основы для смещения в файле, из которого нужно извлечь значение. В этом случае конструктор откроет файл, а деструктор закроет файл, в то время как метод сделает что-то вроде fseek / fread и вернет значение.
Другим способом его реализации будет предварительное вычисление значений и сохранение их в виде статического массива, на который может ссылаться класс. У конструктора не будет работы, и метод достигнет массива, чтобы получить значение и вернуть его. Несколько экземпляров будут использовать этот массив.
Что все сказанное, на чем стоит сосредоточиться, так это то, что обычно вы хотите иметь возможность вызвать конструктор один раз, а затем часто использовать другие методы. Если выполнение большей работы в конструкторе означает, что ваши методы выполняют меньше работы и работают быстрее, тогда это хороший компромисс. Если вы строите / разрушаете много, как в цикле, то, вероятно, не стоит иметь высокую цену для вашего конструктора.