Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Otro ejemplo:
int main() Devolver un arreglo de caracteres
{
int var1=5;
int *var2;
char* apuntar(char *dato)
var2=&var1;
{
char *cadena="";
cout<<"Valor de var1 es "<<var1<<" y sus dirección de memoria es
strcpy(cadena,dato);
"<<&var1<<endl;
return cadena;
cout<<"Valor de var2 es "<<var2<<" y sus dirección de memoria es
}
"<<&var2<<endl;
cout<<"Valor apuntado por var2 es "<<*var2<<endl;
int main()
system("pause");
{
return 0;
char *dato="AAA---";
}
char *dato2;
dato2=apuntar(dato);
//cout<<apuntar(dato)<<endl;
Paso de parámetros por referencia con apuntadores cout<<endl<<endl;
cout<<"Valor de dato2 "<<dato2<<endl;
cout<<"Direccion de dato2 "<<&dato2<<endl;
cout<<endl<<endl;
void llenar(int *a) system("pause");
{ return 0;
cout<<endl; }
cout<<"Valor de a es "<<a<<" y sus dirección de memoria es
"<<&a<<endl;
cout<<"Valor apuntado por a es "<<*a<<endl;
}
int main()
{
int var1;
int *var2;
delete apuntador;
Ejemplo 1:
#include <iostream>
#include <conio>
#define tama 5
class A
{
int a,b,c;
public:
int dato,*apu;
A(){a=b=c=dato=0;}
A(int x)
{
a=b=c=0;a=b=c=x;dato=150;
apu=&a;
}
void mostrar()
{
cout<<a<<" "<<b<<" "<<c<<" "<<b;
}
};
int main()
{
/******************************************
Apuntadores a variables y arreglos
*******************************************/
int arreglo[tama];
int *p,*j;
cout<<"\n\t"<<"Direccion"<<"\t"<<"Valor"<<"\t"<<"Bytes Ocupados"<<"\t"<<endl<<endl;
//ARREGLO SIN INICIALIZAR
for (int i=0;i<=tama;i++)
cout<<"\t"<<&arreglo[i]<<"\t"<<arreglo[i]<<"\t"<<"\t"<<sizeof(arreglo[i])<<endl;
cout<<endl<<endl;
//ARREGLO SIN INICIALIZADO
for (int i=0;i<=tama;i++)
{
arreglo[i]=i;
cout<<"\t"<<&arreglo[i]<<"\t"<<arreglo[i]<<"\t"<<"\t"<<sizeof(arreglo[i])<<endl;
}
cout<<endl<<endl;
p=arreglo;
cout<<"\t"<<"Direccion de p "<<&p<<endl;
cout<<"\t"<<"Valor de p "<<p<<endl;
cout<<"\t"<<"Valor por indireccion p "<<*p<<endl;
cout<<endl<<endl;
j=p;
cout<<"\t"<<"Direccion de j "<<&j<<endl;
cout<<"\t"<<"Valor de j "<<j<<endl;
cout<<"\t"<<"Valor por indireccion j "<<*j<<endl;
cout<<endl<<endl;
/*****************************************
Apuntadores a Objetos
*******************************************/
A *q;
A ob(5);
cout<<"\n\t"<<"Direccion de memoria del objeto ob "<<&ob;
cout<<"\n\t"<<"Valores desde el Objeto ";ob.mostrar();
cout<<"\n\t"<<"Valor de la variable dato desde el objeto = "<<ob.dato;
cout<<"\n\t"<<"Valor de la variable apu "<<*ob.apu;
cout<<endl<<endl;
q=&ob;
cout<<"\n\t"<<"Direccion de memoria del apuntador q "<<&q;
cout<<"\n\t"<<"Valor de q "<<q;
cout<<"\n\t"<<"Valores desde el apuntador q al objeto ob ";q->mostrar();
cout<<"\n\t"<<"Valor de la variable dato desde el apuntador q = "<<q->dato;
cout<<"\n\t"<<"Valor de la variable apu "<<*q->apu;
q=NULL;
cout<<"\n\t"<<"Direccion de memoria del apuntador q al asignarle NULL "<<&q;
cout<<"\n\t"<<"Nuevo valor de q "<<q;
getch();
return 0;
}
Ejemplo 2:
#include <conio>
#include <iostream>
class A
{
int a,b,c;
public:
static int tot=0;
A(){a=b=c=0;tot++;cout<<"\n"<<"objeto creado # "<<ob_creados();}
A(int x)
{
a=b=c=0;
a=b=c=x;
tot++;
cout<<"\n"<<"objetos creado # "<<ob_creados();
}
void mostrar()
{
cout<<"\n"<<a<<" "<<b<<" "<<c<<" "<<b;
}
int ob_creados()
{
return tot;
}
~A()
{
cout<<"\n"<<"Se elimino un objeto "<<tot;
tot--;
}
};
class B
{
char x,*y;
public:
static int tot=0;
B()
{
x='0';
y= new char[5];
tot++;
}
void mostrar()
{
y[0]='1';
y[1]='2';
y[2]='3';
y[3]='4';
y[4]='5';
cout<<"\n"<<y[0]<<" "<<y[1]<<" "<<y[2]<<" "<<y[3]<<" "<<y[4];
cout<<"\n"<<"Valor del atributo x es "<<x;
}
int ob_creados()
{
return tot;
}
~B()
{
delete y;
cout<<"\n"<<"Se elimino un objeto # "<<ob_creados();
tot--;
}
};
int main()
{
cout<<"\n\t\t"<<"Clase A \n";
A obj1;
obj1.mostrar();
getch();
A *ap1;//Creo un apuntador de tipo A
ap1=new A(5);//asigno memoria dinamica al apuntador creado e inicializo el objeto
ap1->mostrar();
getch();
re[0].mostrar();
re[1].mostrar();
re[2].mostrar();
re[3].mostrar();
re[4].mostrar();
A *arre;
arre=new A[5]; //arreglo de apuntadores dinámicos a objetos
arre[0].mostrar();
arre[1].mostrar();
arre[2].mostrar();
arre[3].mostrar();
arre[4].mostrar();
getch();
cout<<"\n\t\t"<<"Eliminar Objetos \n";
delete []arre; //liberar memoria
re[0].~A();
re[1].~A();
re[2].~A();
re[3].~A();
re[4].~A();
//////////////////////////////////////////////////////////////////////////////
delete ap1;
delete ap2;
obj1.~A();
getch();
getch();
getch();
clrscr();
cout<<"\n\t\t"<<"Clase B \n";
B obj22;
obj22.mostrar();
B obj33;
obj33.mostrar();
getch();
obj33.~B();
obj22.~B();
getch();
return 0;
}
Taller 3.
1 – Realice los ejercicios de ejemplo propuestos en la guía.
2 - Diseñar y codificar una clase en C++ que permita crear conjuntos de tamaño variable de tipo enteros positivos
mayores a cero, donde el usuario debe suministrar el tamaño de los conjuntos, el valor del tamaño del conjunto se debe
recibir en el constructor de la clase, además el conjunto se debe poder llenar de forma aleatoria o de forma manual, eso lo
define el usuario. La clase debe tener como mínimo los siguientes métodos y atributos:
Diseñe y codifique una clase en C++ que permita realizar operaciones sobre conjunto de datos (objetos de la clase
conjuntos). La clase debe implementar los siguientes métodos:
Varianza Promedio
Desviación
Estándar