Dev - C++ - Creacion Dinamica de Objetos

 
Vista:

Creacion Dinamica de Objetos

Publicado por Floren (9 intervenciones) el 02/10/2017 20:13:58
Hola buenas!
Dicho pronto y mal, lo que quiero hacer es que mi programa cree varios de objetos de la misma clase, en funcion de una variable pedida al usuario. Si el usuario dice 3, se crearian: Objeto1, Objeto2, y Objeto3. Para despues trabajar con ellos individualmente.

Espero que me puedan echar un cable

Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Dionicio
Val: 168
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Creacion Dinamica de Objetos

Publicado por Dionicio (57 intervenciones) el 02/10/2017 22:25:41
Podrías simplemente implementar un arreglo de objetos, y trabajar con ellos como gustes. Te dejo un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
 
class Suma
{
	private:
		int num1, num2;
 
	public:
		Suma(){}
		Suma(int a, int b){
			num1 = a;
			num2 = b;
		}
		int getSuma();
};
int main()
{
	Suma *sumas = new Suma[3];
 
	sumas[0] = Suma(5,1);
	sumas[1] = Suma(3,1);
	sumas[2] = Suma(8,9);
 
 
	for(int i = 0; i < 3; i++){
		std::cout<<"La suma del objeto #" <<i+1<<" es "<<sumas[i].getSuma()<<std::endl;
	}
 
 
	delete sumas;
 
	return 0;
}
 
int Suma::getSuma(){
	return (num1+num2);
}

Espero te sirva de algo, sino espero que alguien más pueda ayudarte. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Creacion Dinamica de Objetos

Publicado por Floren (9 intervenciones) el 03/10/2017 21:32:10
Hola! Gracias por tu tiempo, lo primero.

Pero lo que veo en tu programa es que realiza las 3 sumas que tu le has implementado. A lo que yo me referia sería algo mas asi:
1º- El programa al ejecutarte te pregunta cuantas sumas quieres hacer
2º- Te pide que metas los datos para cada una de las sumas que quieres hacer (o en mi caso, que lea esos datos de otro sitio, pero eso no importa)
3º- El programa crea tantos objetos suma como tu le has dicho, mete los datos a cada una y te devuelve el resultado

Asi con el mismo programa podriamos hacer 2 sumas, o 50 si quisieramos.

De nuevo gracias por tu respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dionicio
Val: 168
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Creacion Dinamica de Objetos

Publicado por Dionicio (57 intervenciones) el 03/10/2017 22:20:27
El mayor problema era como crear los objetos, lo demás resulta fácil, puesto que 3 es una constante que usé pero se pueden crear tantos como se quieran cambiándolo por el número deseado.

Si ya has trabajado con vectores verás que no hay mucha diferencia. Te dejo el mismo ejemplo solo que puedes hacer tantas sumas quieras. Espero te sirva, y si necesitas ayuda no dudes en comentar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
 
class Suma
{
	private:
		int num1, num2;
 
	public:
		Suma(){}
		Suma(int a, int b){
			num1 = a;
			num2 = b;
		}
		int getSuma();
};
int main()
{
	Suma *sumas;
	int numObjetos;
 
 
	std::cout<<"Cuantas sumas deseas hacer? ";
	std::cin>>numObjetos;
 
 
	if(numObjetos != 0){
		sumas = new Suma[numObjetos];//Tantos objetos como indiquemos
		int valor1, valor2;
 
		for(int i = 0; i < numObjetos; i++)
		{
			std::cout<<"Digita el valor 1 para el objeto #"<<i+1<<": ";
			std::cin>>valor1;
			std::cout<<"Digita el valor 2 para el objeto #"<<i+1<<": ";
			std::cin>>valor2;
			std::cout<<std::endl;
			sumas[i] = Suma(valor1,valor2);
		}
 
		std::cout<<std::endl;
 
		std::cout<<"Los resultatos de los objetos creados son: "<<std::endl;
 
		for(int i = 0; i < numObjetos; i++){
			std::cout<<"La suma del objeto #" <<i+1<<" es "<<sumas[i].getSuma()<<std::endl;
		}
 
		delete sumas;
	}else{
		std::cout<<"No se pudo crear el objeto porque el valor "<<numObjetos<<" no es permitido! Adios!"<<std::endl;
	}
 
 
 
	return 0;
}
 
int Suma::getSuma(){
	return (num1+num2);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Creacion Dinamica de Objetos

Publicado por Floren (9 intervenciones) el 05/10/2017 09:40:31
Wow esto es justo lo que necesitaba! Vaya tela con los punteros

Muchas gracas, eres un crack!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar