elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Añadir objetos vacios a vector para luego modificarlo.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Añadir objetos vacios a vector para luego modificarlo.  (Leído 2,051 veces)
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Añadir objetos vacios a vector para luego modificarlo.
« en: 17 Junio 2013, 11:48 am »

Hola estoy haciendo unas clases que contienen miembro de vector, de la siguiente forma.
Código
  1. vector<clase1> listaclase1;
  2. listaclase1.push_back(clase1());
  3. listaclase1[0].add(x);
Hasta aquí va todo bien el problema es cuando la clase1 herede de una clase que tiene sobrecargado el operador "=" para que no sea copiable.

Código
  1. class SFML_SYSTEM_API NonCopyable
  2. {
  3. protected :
  4.    NonCopyable() {}
  5. private :
  6.    NonCopyable(const NonCopyable&);
  7.    NonCopyable& operator =(const NonCopyable&);
  8. };

entonces no puedo hacer lo que intentaba hacer arriba, haber si alguien me puede ayudar y encontrar una solucion sea con puntero o como sea.

He pensado que quizás estoy haciendo un mal hábito en el vector


TROZO DE MI CÓDIGO
Código
  1. sf::Texture t1;
  2.    t1.loadFromFile("image/p1.png");
  3.  
  4.    Widgets.push_back(Widget());
  5.    Widgets.push_back(Widget());
  6.    Widgets[0].setTexture(t1);
  7.    Widgets[1].setTexture(t1);
  8.    Widgets[1].setPosition(100,20);
  9.    Layouts.push_back(Layout());// Aquí ya falla
  10.    Layouts[0]->addWidget(&Widget1);


« Última modificación: 17 Junio 2013, 11:52 am por Xafi » En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Añadir objetos vacios a vector para luego modificarlo.
« Respuesta #1 en: 17 Junio 2013, 11:59 am »

No es el operador de asignación, sino el constructor copia.

Sin probarlo se me ocurre lo siguiente:

Código
  1. sf::Texture t1;
  2. Layouts Nuevo;
  3. t1.loadFromFile("image/p1.png");
  4.  
  5. Widgets.push_back(Widget());
  6. Widgets.push_back(Widget());
  7. Widgets[0].setTexture(t1);
  8. Widgets[1].setTexture(t1);
  9. Widgets[1].setPosition(100,20);
  10. Layouts.push_back(Nuevo);
  11. Layouts[0]->addWidget(&Widget1);


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: Añadir objetos vacios a vector para luego modificarlo.
« Respuesta #2 en: 17 Junio 2013, 12:58 pm »

No es el operador de asignación, sino el constructor copia.

Sin probarlo se me ocurre lo siguiente:

Código
  1. sf::Texture t1;
  2. Layouts Nuevo;
  3. t1.loadFromFile("image/p1.png");
  4.  
  5. Widgets.push_back(Widget());
  6. Widgets.push_back(Widget());
  7. Widgets[0].setTexture(t1);
  8. Widgets[1].setTexture(t1);
  9. Widgets[1].setPosition(100,20);
  10. Layouts.push_back(Nuevo);
  11. Layouts[0]->addWidget(&Widget1);

Lo he conseguido haciendo que el vector sea de punteros.
Código
  1.    typedef vector<Layout*> ListLayouts;
  2. ....
  3.  
  4. sf::Texture t1;
  5.    t1.loadFromFile("image/p1.png");
  6.    Layout Nuevo;
  7.    Widgets.push_back(Widget());
  8.    Widgets.push_back(Widget());
  9.    Widgets[0].setTexture(t1);
  10.    Widgets[1].setTexture(t1);
  11.    Widgets[1].setPosition(100,20);
  12.    Layouts.push_back(&Nuevo);
  13.    Layouts[0]->addWidget(&Widget1);
  14.    Layouts[0]->addWidget(&Widgets[1]);
  15.  
Lo que intentaba era hacerlo de forma que no tuviera:
Código
  1. Layout Nuevo;

en plan Layouts.push_back(Layout());

Layout es una clase mi que hereda de otra clase de la libreria sfml

NoCopyable -> RenderTexture -> Layout.
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿¿como puedo pasar un proyecto de vb6 .exe a .vbp para volver a modificarlo??
Programación Visual Basic
kukushama 0 1,991 Último mensaje 7 Febrero 2008, 20:45 pm
por kukushama
[C++] Reordenar vector dinámico de objetos
Programación C/C++
Rockmore 2 5,785 Último mensaje 17 Marzo 2011, 19:05 pm
por Rockmore
Vector de objetos
Java
m@o_614 7 4,654 Último mensaje 15 Junio 2012, 23:01 pm
por Pablo Videla
Rellenar cartuchos de tinta vacios (para una impresora estándar) con hidrogel.
Hardware
Hernesto 3 3,022 Último mensaje 14 Agosto 2012, 15:46 pm
por Hernesto
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines