Destructores en c# y c++

Solo disponible en BuenasTareas
  • Páginas : 5 (1003 palabras )
  • Descarga(s) : 0
  • Publicado : 2 de septiembre de 2010
Leer documento completo
Vista previa del texto
Destructores
Un destructor es una función miembro con igual nombre que la clase, pero precedido por el carácter ~. Una clase sólo tiene una función destructor que, no tiene argumentos y no devuelve ningún tipo. Un destructor realiza la operación opuesta de un constructor, limpiando el almacenamiento asignado a los objetos cuando se crean. C++ permite sólo un destructor por clase. El compiladorllama automáticamente a un destructor del objeto cuando el objeto sale fuera del ámbito. Si un destructor no se define en una clase, se creará por defecto un destructor que no hace nada.
Normalmente los destructores se declaran public.
Creación y supresión dinámica de objetos
Los operadores new y delete se pueden utilizar para crear y destruir objetos de una clase, así como dentro de funcionesconstructoras y destructoras.
Un objetro de una determinada clase se crea cuando la ejecución del programa entra en el ámbito en que está definida y se destruye cuando se llega al final del ámbito. Esto es válido tanto para objetos globales como locales, ya que los objetos globales se crean al comenzar el programa y se destruyen al salir de él. Sin embargo, se puede crear un objeto tambiénmediante el operador new, que asigna la memoria necesaria para alojar el objeto y devuelve su dirección, en forma de puntero, al objeto en cuestión.
Los constructores normalmente implican la aplicación de new.
p =new int(9) //p es un puntero a int inicializado a 9
cadena cad1("hola");
cadena *cad2=new cadena;
Un objeto creado con new no tiene ámbito, es decir, no se destruye automáticamente al salirfuera del ámbito, sino que existe hasta que se destruye explícitamente mediante el operador delete.
class cadena
{
char *datos;
public:cadena(int);
~cadena();
};
cadena::cadena(int lon)
{
datos=new char[lon];
}
cadena::~cadena()
{
delete datos;
}
Funciones miembro estáticas
Las funciones miembro static sólo pueden acceder a otras funciones y datos declarados en una clase, pero nopueden manipular funciones ni datos no estáticos. La razón de esta característica es que una función miembro static no tiene asignado un puntero this y por ello no puede acceder a miembros dato de la clase a menos que se pase explícitamente este puntero this.
Constructores
Un constructor es una función especial que sirve para construir o inicializar objetos. En C++ la inicialización de objetosno se puede realizar en el momento en que son declarados; sin embargo, tiene una característica muy importante y es disponer de una función llamada constructor que permite inicializar objetos en el momento en que se crean.
Un constructor es una función que sirve para construir un nuevo objeto y asignar valores a sus miembros dato. Se caracteriza por:
- Tener el mismo nombre de la clase queinicializa
- Puede definirse inline o fuera de la declaración de la clase
- No devuelve valores
- Puede admitir parámetros como cualquier otra función
- Puede existir más de un constructor, e incluso no existir
Si no se define ningún constructor de una clase, el compilador generará un constructor por defecto. El constructor por defecto no tiene argumentos y simplemente sitúa ceros en cada byte delas variables instancia de un objeto. Si se definen constructores para una clase, el constructor por defecto no se genera.
Un constructor del objeto se llama cuando se crea el objeto implícitamente: nunca se llama explícitamente a las funciones constructoras. Esto significa que se llama cuando se ejecuta la declaración del objeto. También, para objetos locales, el constructor se llama cada vez quela declaración del objeto se encuentra. En objetos globales, el constructor se llama cuando se arranca el programa.
El constructor por defecto es un constructor que no acepta argumentos. Se llama cuando se define una instancia pero no se especifica un valor inicial.
Se pueden declarar en una clase constructores múltiples, mientras tomen parte diferentes tipos o número de argumentos. El...
tracking img