Las estructuras por lo general pasan en llamadas por valor. Para
evitar la sobrecarga de copiar una estructura, pase la estructura
en llamada por referencia.
A fin de evitar la sobrecarga de la llamada por valor y aún
así obtener el beneficio de que la información original
del llamador quede protegida contra modificaciones, pase argumentos
de tamaño extenso como referencias const.
Definir una función miembro pequeña dentro de una
definición de clase automáticamente coloca la función
miembro en línea (si el compilador así lo decide).
Esto puede mejorar el rendimiento, pero no promueve una mejor ingeniería
del software.
Pasar un objeto en llamada por valor es bueno desde un punto de
vista de seguridad, porque la función llamada no tiene acceso
al objeto original, pero cuando se tiene que hacer una copia de
un objeto grande la llamada por valor puede degradar el rendimiento.
Un objeto puede ser pasado en llamada por referencia, pasando ya
sea un apuntador o una referencia al objeto. La llamada por referencia
ofrece un buen rendimiento, pero es más débil desde
un punto de vista de seguridad, debido a que la función llamada
tiene acceso al objeto original. Una alternativa segura sería
una referencia en llamada por const.
Si las clase producidas mediante la herencia son más grandes
de lo requerido, pudiera dar como resultado un desperdicio de memoria
y de recursos de proceso.
Por razones de economía de almacenamiento, existe sólo
una copia de cada función miembro por clase, y esta función
miembro es invocada para todos los objetos de dicha clase. Por otra
parte, cada objeto tiene su propia copia de los miembros de datos
de la clase.
Cuando una copia de los datos sea suficiente, utilice miembros de
datos estáticos a fin de ahorrar almacenamiento.
|