Существует ли значительная внутренняя стоимость создания экземпляров объекта в C ++?

мне недавно сказали в обзоре кода (более старым и более мудрым разработчиком C ++) переписать класс, который я написал, превратив его вместо этого в набор статических методов. Он оправдал это, сказав, что, хотя мой объект действительно содержит очень небольшое количество внутреннего состояния, его все равно можно получить во время выполнения, и если я перейду на статические методы, я смогу избежать затрат на создание безумных объектов повсюду.

Я внес это изменение, но это заставило меня задуматься, какова стоимость создания экземпляра в C ++? Я знаю, что в управляемых языках сборщик мусора требует значительных затрат. Однако мой объект C ++ был просто в стеке, он не содержал никаких виртуальных методов, поэтому не было бы затрат на поиск функций во время выполнения. Я использовал новый механизм удаления C ++ 11, чтобы удалить операторы копирования / присваивания по умолчанию, чтобы не было никакого копирования. Это был простой объект с конструктором, который выполнял небольшой объем работы (в любом случае требовался для статических методов), и деструктором, который ничего не делал. Могу ли я в любом случае сказать мне, что это за константы instation? (Рецензент немного пугает, и я не хочу выглядеть глупо, спрашивая его!); -)

11
задан Benj 28 February 2012 в 21:36
поделиться