У меня есть класс:
class Cat {
Cat();
Tail longTail;
}
Я не уверен, как правильно написать конструктор для него.Я не хочу делать longTail указателем по несвязанной причине.
Cat::Cat() : longTail(length) {...}
Это не подходит, потому что длина вычисляется в конструкторе на основе значений статических членов в момент создания;(Плохая практика вверх по течению);
Вопрос
Cat::Cat()
{
int length;
...
longTail = Tail(length);
}
Сколько раз происходит создание и копирование Tail объектов?Их создание и копирование обходятся ЦП, и мне нужны тысячи кошек.Мне кажется, этот конструктор сначала создает объект Tail по умолчанию в longTail , после этого он создает объект Tail без имени справа от назначения, затем запускает operator = on longTail и noname Хвост .Я прав?Если да, как я должен написать это вместо того, чтобы сохранить процессор?Я повторяю: longTail нужен параметр, который рассчитывается в конструкторе, и я не могу редактировать Tail class.