Что касается того, является ли один или три вызова (хорошо, 2,5, поскольку первый вызов неявным) "лучше" (игнорируя проблему с кучей), стоит задуматься о концептуальном ходе программы и о вашем интеллектуальном контроле над ней.Это.И также стоит рассмотреть практические вопросы, связанные с кодированием.
На стороне вызывающей стороны, если все соответствующие параметры уже находятся под рукой, где создается объект, то один вызов делает более очевидным, что, действительно,все параметры «принадлежат» этому объекту, и он создается «одним куском».С другой стороны, если использование одного вызова означает, что вызывающий код должен собирать параметры с течением времени, а затем выплевывать один «отложенный» вызов, тогда может быть лучшим выбором создать объект и затем установить соответствующие свойства.по одному, по мере того, как их значения развиваются.
И, на стороне вызываемого, могут быть практические соображения.Например, может быть, что существует дюжина свойств, при разных вариантах использования объекта могут использоваться разные комбинации.Вместо того, чтобы предоставлять десятки различных конструкторов, предоставление одного конструктора (или небольшого их числа) в сочетании с несколькими установщиками свойств является более эффективным с точки зрения времени программиста и менее склонным вводить в заблуждение пользователя объекта.Но если (почти) всегда используется одна и та же комбинация относительно небольшого количества параметров, то, вероятно, лучше использовать ресурсы одного программиста.
(Здесь важно то, что C ++ не реализуетИстинные параметры ключевых слов, поэтому, когда списки параметров выходят за рамки 4-5 элементов, один теряет интеллектуальный контроль над тем, какой параметр какой, особенно если существует несколько форм конструктора. В таком случае использование отдельных установщиков свойств дает (грубый) эффект ключевого словапараметры и снижает вероятность путаницы.)
Эффективность не всегда о циклах процессора.Эффективное использование времени программиста (включая сокращение времени на отладку) во многих отношениях намного важнее.