Конструкторы не знают, как что-либо пропустить, если вы сами не скажете им, но в случае делегирования конструктора такой тип связи будет сложным, потому что значения могут быть неинициализированы, или они могут быть заполнены, и это действительно не легкочтобы понять разницу.
Вместо этого структурируйте это следующим образом:
Number() : length(100) {
allocateValues();
};
Number(int len) : length(len) {
allocateValues();
}
void allocateValues() {
values = new int[length];
}
Это действительно плохая форма, так как std::vector
и друзья могут помочь вам.Рассмотрим что-то подобное, используя insert
:
Number() {
values.insert(values.begin(), len, 100);
}
Number(int len) {
values.insert(values.begin(), len, 0);
}