C ++: влияние на производительность больших классов (с большим количеством кода)
Интересно, а как писать?всемогущий» классы в c ++ фактически влияют на производительность.
Если у меня есть, например, классточка, только сuint x; Uint Y; как данные, и определили практически все, что математика может сделать для точки в качестве методов. Некоторые из этих методов могут быть огромными. (copy-) конструкторы делают только инициализацию двух членов данных.
class Point
{
int mx; int my;
Point(int x, int y):mx(x),my(y){};
Point(const Point& other):mx(other.x),my(other.y){};
// .... HUGE number of methods....
};
Сейчас. Я загружаю большое изображение и создаюточка для каждого пикселя вставьте их в вектор ииспользование их. (скажем, все методы вызываются один раз) Это только глупый пример!
Будет ли он медленнее, чем тот же класс без методов, но с большим количеством вспомогательных функций? Я не говорю о виртуальных функциях в любом случае!
Моя мотивация для этого: я часто нахожу себя пишущим хорошие и относительно мощные классы, но когда мне приходится инициализировать / использовать тонну из них, как в примере выше, я нервничаю. Я думаю, что я не должент.
я думаю, что знаю:
Методы существуют только один раз в памяти. (оптимизация в стороне)Распределение происходит только для элементов данных, и они являются единственным скопированным.Так что это не должноне имеет значения. Я что-то пропустил?