Ir a Emagister Encuentra tu formación ideal
¡Mailxmail y emagister se unen para que tengas toda la formación a tu alcance!
12.170 cursos gratis
8.187.562 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Lenguaje C++. Guía para Programadores

Autor: Fernando Guerrero Tala
Curso:
8,76/10 (191 opiniones) |37692 alumnos|Fecha publicación: 01/07/2004
Envía un mensaje al autor

Capítulo 11:

 This, New y Delete

This es un puntero que se pasa automáticamente a cualquier miembro cuando se invoca. Es un puntero al objeto que genera la llamada, por tanto la función recibe automáticamente un puntero al objeto. A este puntero se referencia como this y solo se pasa a los miembros punteros this.

objeto.funcion(); // a la función recibe automáticamente el puntero this.

EJEMPLO: El primero  sin puntero this. El segundo utilizando el puntero this.

1.-

#include <iostream.h>

#include <stdio.h>

#include <conio.h>

#include <string.h>

class stock{

      char item[20];

      double coste;

public:

      stock(char *i,double c)

      {

            strcpy(item,i);

            coste=c;

      }

      void muestra();

};

void stock::muestra()

{

      cout<<item << "\n";

      cout<<"PVP: " << coste;

}

void main()

{

      clrscr();

      stock obj("tuerca",5.94);

      obj.muestra();

      getch();

}

2.-

#include <iostream.h>

#include <stdio.h>

#include <conio.h>

#include <string.h>

class stock{

      char item[20];

      double coste;

public:

      stock(char *i,double c)

      {

            strcpy(this->item,i);

            this->coste=c;

      }

      void muestra();

};

void stock::muestra()

{

      cout<<this->item << "\n";

      cout<<"PVP: " << this->coste;

}

void main()

{

      clrscr();

      stock obj("tuerca",5.94);

      obj.muestra();

      getch();

}

Hasta ahora si se necesitaba asignar memoria dinámica, se hacía con malloc y para liberar se utilizaba free. En C++ se puede asignar memoria utilizando new y liberarse mediante delete. Estas operadores no se pueden combinar unas con otras, es decir debe llamarse a delete solo con un puntero obtenido mediante new. Los objetos también se les puede pasar un valor inicial con la sentencia new.

SINTAXIS:

puntero=new tipo;

delete puntero;

puntero=new tipo(valor_inicial);

También se pueden crear arrays asignados dinámicamente, estos arrays pueden utilizar la sentencia new. La sintaxis general es:

DECLARACION DEL ARRAY:

puntero=new tipo[tamaño];

EJEMPLO:

#include<iostream.h>

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

class cosas{

     int i,j;

public:

     void obten(int a,int b){i=a;j=b;}

     int muestra(){return i*j;}

};

void main()

{

     clrscr();

     int *p_var;

     p_var=new int;

//p_var=new int(9); se asigna un valor inicial.

     cosas *p;

     p=new cosas;

     if(!p || !p_var)

     {

         cout<<"Error de asignacion\n";

         exit(1);

     }

     *p_var=1000;

     p->obten(4,5);

     cout<<"El entero en p_var es: " <<*p_var;

     cout<<"\nTotal: " <<p->muestra();

     getch();

}

EJEMPLO: Array asignado dinámicamente.

#include<iostream.h>

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

void main(void)

{

     int *p;

     int i;

     p=new int[5];

     clrscr();

     if(!p)

     {

         cout<<"Error de asignacion\n";

         exit(1);

     }

     for(i=0;i<5;i++)

         p[i]=i+1;

     for(i=0;i<5;i++)

     {

         cout<<"Este es el entero en p["<<i<<"]:";

         cout<<p[i]<<"\n";

     }

     delete[] p;

     getch();

}

Capítulo siguiente - Referencias
Capítulo anterior - Funciones Amigas

Nuestras novedades en tu e-mail

Escribe tu e-mail:

Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Cursos similares a Lenguaje C++. Guía para Programadores


  • Vídeo
  • Alumnos
  • Valoración
  • Cursos
1. Introducción al Lenguaje C
El lenguaje C apareció en 1972, en el diseño del sistema operativo UNIX. Este... [10/05/04]
73.701  
2. Guía de Comandos Rápidos de Linux
Linux es la principal expresión del software libre. Linux ofrece al usuario la... [14/06/04]
22.018  
3. Action Script 3. Lenguaje de programación
Action script 3 . Este curso de informática fue realizado especialmente para las... [04/05/11]
274
Curso con video

El blog de mailxmail|¿Qué es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail


¿Quieres recibir más cursos de Programación? ¡Son gratis!