Professional Documents
Culture Documents
Funciones inline
1
!o#recarga
'e Operadores Creacin 'inmica de O#$etos
Herencia(
)ipos de *isi#ilidad
Herencia M+ltiple
Polimor,ismo
Funciones *irtuales Polimor,ismo " !o#recarga(
Plantillas
Contenedores
Iteradores
&lumnoM-(.
include Alumno.h include AlumnoM2.h include AlumnoM2.h
&lumno(cpp
&lumnoM-(cpp
test/main(cpp
Compilador
Compilador
Compilador
&lumno(o#$
&lumnoM-(o#$
Enla0ador
test/main(o#$
Practica1(e2e 3
Punteros constantes6
// p es un puntero que apunta // a: un entero constante. const int* p; const int *p; // w es un puntero constante // que apunta a: un entero. int i=3; int* const w *w = 2; = &i; // Est bien o est mal?
En C++ lo me$or es utili0ar una re,erencia constante en lugar de paso por 4alor( %n m7todo 8ue no modi,ica ning+n atri#uto se de#er9a escri#ir como constante " as9 se podr9a usar desde o#$etos constantes(
:
Con ,unciones inline en lugar de e2istir una +nica copia de la ,uncin dentro del cdigo< cuando se declara una ,uncin como ;inline; lo 8ue se .ace es insertar su cdigo en el lugar en 8ue se reali0a la llamada< en lugar de in4ocar a la ,uncin(
=
#$nciones inline
El cdigo generado para la ,uncin cuando el programa se compila< se inserta en el p$nto donde se in!oca a la "$ncin< en lugar de .acerlo en otro lugar " .acer una llamada( El cdigo de estas ,unciones se ejec$ta m%s r%pidamente< "a 8ue se e4ita usar la pila para pasar parmetros " se e4itan las instrucciones de salto " retorno )am#i7n tiene un incon4eniente6 se generar el cdigo de la ,uncin tantas 4eces como 7sta se use< con lo 8ue el programa ejec$table ,inal puede ser muc.o m%s grande( Es por esos dos moti4os por los 8ue slo se usan ,unciones inline cuando las "$nciones son pe&$e'as(
@
Cada 4e0 8ue declaremos un o#$eto de la clase E$emplo se insertar el cdigo correspondiente a su constructor( !i no es inline cuando declaremos o#$etos de la clase E$emplo se .ar una llamada al constructor " slo e2istir una copia del cdigo del constructor en nuestro programa( 1
( //#define
{
1E
10.3 Resumen
inline
!ustitu"e la utili0acin de macros 8ue es mu" com+n en la programacin en C( !e pens para dotar al lengua$e C++ de ma"or e,iciencia( Es una sugerencia para el compilador( Ha" dos maneras de de,inir un m7todo de una clase como inline( Es pre,eri#le la 8ue se utili0a en la implementacin " no en la declaracin de la clase(
11