C ++: Impacto en el rendimiento de las clases BIG (con mucho código)

Me pregunto si y cómo la escritura de clases "todopoderosas" en c ++ realmente afecta el rendimiento.

Si tengo por ejemplo, una clase.Punto, con solouint x; uint y; como datos, y han definido virtualmente todo lo que las matemáticas pueden hacer hasta un punto como métodos. Algunos de esos métodos pueden ser enormes. (copy-) los constructores no hacen nada más que inicializar los dos miembros de datos.

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....
};

Ahora. Cargo una imagen grande y creo unPunto Por cada píxel, las cosas em en un vector yutilizar ellos. (por ejemplo, todos los métodos son llamados una vez) ¡Esto solo es un ejemplo estúpido!

¿Sería más lento que la misma clase sin los métodos pero con muchas funciones de utilidad? ¡No estoy hablando de funciones virtuales de ninguna manera!

Mi motivación para esto: a menudo me encuentro escribiendo clases agradables y relativamente poderosas, pero cuando tengo que inicializar / usar un montón de ellas como en el ejemplo anterior, me pongo nervioso. Creo que no debería.

Lo que creo que sé es:

Los métodos existen solo una vez en la memoria. (optimizaciones aparte)La asignación solo se realiza para los miembros de datos, y son lo único que se copia.

Así que no debería importar. ¿Me estoy perdiendo de algo?

Respuestas a la pregunta(9)

Su respuesta a la pregunta