Herramientas de usuario

Herramientas del sitio


highlevel:c:effective

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
highlevel:c:effective [2008/09/15 09:22]
alfred creado
highlevel:c:effective [2020/05/09 09:25] (actual)
Línea 13: Línea 13:
 Remarcar también que incluir ''​iostream''​ es distinto a incluir ''​iostream.h'',​ esta segunda contiene las funciones como globales en vez de estar dentro de los namespaces, llevando a poder provocar algún error de nombres. Remarcar también que incluir ''​iostream''​ es distinto a incluir ''​iostream.h'',​ esta segunda contiene las funciones como globales en vez de estar dentro de los namespaces, llevando a poder provocar algún error de nombres.
  
-==== Utilizar new y delete ​====+ 
 + 
 + 
 + 
 + 
 +==== Gestión de memoria ​====
 El preferible utilizar los ''​new''​ y ''​delete''​ en vez del ''​malloc''​ y el ''​free''​. \\  El preferible utilizar los ''​new''​ y ''​delete''​ en vez del ''​malloc''​ y el ''​free''​. \\ 
 Es importante entender que al hacer un array debe llamarse al ''​delete''​ como ''​delete []''​. Es importante entender que al hacer un array debe llamarse al ''​delete''​ como ''​delete []''​.
Línea 22: Línea 27:
 </​code>​ </​code>​
 Cuando creamos un puntero nulo lo inicializaremos como 0, no como ''​NULL''​. \\  Cuando creamos un puntero nulo lo inicializaremos como 0, no como ''​NULL''​. \\ 
-Llamaremos a los delete a los punteros miembros de una clase dentro del destructor de esta.+Llamaremos a los delete a los punteros miembros de una clase dentro del destructor de esta. \\ \\  
 + 
 +Debemos estar preparados por si el sistema se quedase sin memoria, para ello existe una función llamada ''​set_new_handler''​ que recibe por parámetro la función que se llamará si esto ocurriese:​ 
 +<code cpp> 
 +void noMoreMemory() {  
 +  cerr << "​Unable to satisfy request for memory\n";​  
 +  abort();  
 +}  
 + 
 +int main() {  
 +  set_new_handler(noMoreMemory);​  
 +  for (long i=0; i<​100000000;​ i++) 
 +    new long[100000000];​  
 +}  
 +</​code>​
  
 ===== More Effective C++ ====== ===== More Effective C++ ======
  
highlevel/c/effective.1221470554.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)