12.170 cursos gratis
8.774.136 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 9:

 Operaciones con Objetos

ASIGNACIÓN DE OBJETOS: Se puede asignar un objeto a otro a condición de que ambos objetos sean del mismo tipo (misma clase). Cuando un objeto se asigna a otro se hace una copia a nivel de bits de todos los miembros, es decir se copian los contenidos de todos los datos. Los objetos continúan siendo independientes.
objeto_destino=objeto_origen;

EJEMPLO:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
class miclase{
    int a,b;
public:
     void obtener(int i, int j){a=i;b=j;}
     void mostrar(){cout << a << " "<< b << "\n";}
};

void main()
{
     miclase o1,o2;
     o1.obtener(10,4);
     o2=o1;
     o1.show();
     o2.show();
     getch();
}

ARRAY DE OBJETOS: Los objetos son variables y tienen las mismas capacidades y atributos que cualquier tipo de variables, por tanto es posible disponer objetos en un array. La sintaxis es exactamente igual a la utilizada para declarar y acceder al array. También disponemos de arrays bidimensionales.

DECLARACIÓN:
nombre_clase nombre_objeto[nº elementos];
nombre_clase nombre_objeto[nº elementos]={elementos};

INICIALIZACIÓN:
nombre_objeto[índice].función(valores);

EJEMPLO: Unidimensional.
     #include <iostream.h>
     #include <stdio.h>
     #include <conio.h>
     class ejemplo{
         int a;
     public:
         void pasar(int x){a=x;}
         int mostrar() {return a;}
     };
     void main()
     {
         ejemplo ob[4];
         int indice;
         clrscr();
         for(indice=0;indice<4;indice++)
              ob[indice].pasar(indice);
         for(indice=0;indice<4;indice++)
         {
              cout << ob[indice].mostrar();
              cout << "\n";
         }
         getch();
     }

EJEMPLO: Bidimensional.
     #include <iostream.h>
     #include <stdio.h>
     #include <conio.h>
     class bidi{
         int a,b;
     public:
          bidi(int n, int m){a=n;b=m;}
         int pasa_a(){return a;}
         int pasa_b(){return b;}
     };
     void main()
     {
         clrscr();
         int fil,col;
         bidi objeto[3][2]={
              bidi(1,2),bidi(3,4),
              bidi(5,6),bidi(7,8),
              bidi(9,10),bidi(11,12)};
         for(fil=0;fil<3;fil++)
          {
              for(col=0;col<2;col++)
              {
                   cout << objeto[fil][col].pasa_a();
                   cout << " ";
                   cout << objeto[fil][col].pasa_b();
                   cout << "\n";
              }
         }
         getch();
     }

PASO DE OBJETOS A FUNCIONES: Los objetos se pueden pasar a funciones como argumentos de la misma manera que se pasan otros tipos de datos. Hay que declarar el parámetro como un tipo de clase y después usar un objeto de esa clase como argumento cuando se llama a la función. Cuando se pasa un objeto a una función se hace una copia de ese objeto.

Cuando se crea una copia de un objeto porque se usa como argumento para una función, no se llama a la función constructora. Sin embargo, cuando la copia se destruye (al salir de ámbito), se llama a la función destructora.

PROTOTIPO DE FUNCIÓN: 
tipo_devuelto nombre(nombre_clase nombre_objeto){
              cuerpo;
}

LLAMADA A  LA FUNCIÓN:
nombre_funcion(objeto);

EJEMPLO:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
class objetos{
         int i;
public:
     objetos(int n){i=n;}
     int devol(){return i;}
};
int sqr(objetos o)
{
         return o.devol()*o.devol();
}
void main()
{
         objetos a(10), b(2);
     cout << sqr(a);
         cout << sqr(b);
     getch();
}

OBJETOS DEVUELTOS POR FUCIONES: Al igual que se pueden pasar objetos, las funciones pueden devolver objetos. Primero hay que declarar la función para que devuelva un tipo de clase. Segundo hay que devolver un objeto de ese tipo usando  la sentencia return.

Cuando un objeto es devuelto por una función, se crea automáticamente un objeto temporal que guarda el valor devuelto. Este es el objeto que realmente devuelve la función. Después el objeto se destruye, esto puede causar efectos laterales inesperados.

EJEMPLO:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
class ejemplo{
     char cadena[80];
public:
     void muestra(){cout<<cadena<<"\n";}
     void copia(char *cad){strcpy(cadena,cad);}
};
ejemplo entrada()
{
     char cadena[80];
     ejemplo str;
     cout<<"Introducir cadena: ";
     cin>>cadena;
     str.copia(cadena);
     return str;
}
void main()
{
     ejemplo ob;
     ob=entrada();
     ob.muestra();
     getch();
}

PUNTEROS A OBJETOS: Hasta ahora se ha accedido a miembros de un objeto usando el operador punto. Es posible acceder a un miembro de un objeto a través de un puntero a ese objeto. Cuando sea este el caso, se emplea el operador de flecha (->) en vez del operador punto. Para obtener la dirección de un objeto, se precede al objeto con el operador &. Se trabaja de igual forma que los punteros a otros tipos.

EJEMPLO:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
class miclase{
     int a;
public:
     miclase(int x);
     int get();
};
miclase::miclase(int x)
{
     a=x;
}
int miclase::get()
{
     return a;
}
void main()
{
     clrscr();
     miclase obj(200);
     miclase *p;
     p=&obj;
     cout << "El valor del Objeto es " << obj.get();
     cout << "El valor del Puntero es " << p->get();
     getch();
}

Capýtulo siguiente - Funciones Amigas

Nuestras novedades en tu e-mail

Escribe tu e-mail:



MailxMail tratarý tus datos para realizar acciones promocionales (výa email y/o telýfono).
En la polýtica de privacidad conocerýs tu derechos y gestionarýs la baja.

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

ýQuý es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail