<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<pre wrap=""><div class="moz-txt-sig"><div class="moz-txt-sig"><font
 color="#330033">
Hola Steven muchas gracias por tu respuesta, me ha servido de mucho abajo tengo las siguientes preguntas.

Gracias</font>
</div></div></pre>
<blockquote type="cite" style="color: rgb(0, 0, 0);">
  <pre wrap=""><font color="#330099"><span class="moz-txt-citetags">> </span>Saludos compañeros, anteriormente habia puesto una consulta sobre el
<span class="moz-txt-citetags">> </span>constructor copia en una lista, bueno ahora resulta que me puse hacer una
<span class="moz-txt-citetags">> </span>"cola", pero sigo con dudas.
<span class="moz-txt-citetags">> </span>En el siguiente codigo, no entiendo porque me da problema, lo que trato de
<span class="moz-txt-citetags">> </span>hacer es un constructor copia que reciba dos instancias de la clase cola y
<span class="moz-txt-citetags">> </span>que me inserte un dato, entiendo que si uso el metodo "Insertar" dentro de
<span class="moz-txt-citetags">> </span>ese constructor copia deberia de llenarme la instancia con el dato que estoy
<span class="moz-txt-citetags">> </span>poniendo, lo compilo y cuando lo corro me da un error de "segment default".
<span class="moz-txt-citetags">> </span>No entiendo que es lo que pasa, estoy usando el IDE Codeblocks y el
<span class="moz-txt-citetags">> </span>compilador de g++, lo que trato de hacer es llenar una nueva instancia con
<span class="moz-txt-citetags">> </span>los datos de dos instancias pasadas por parámetro por medio de un
<span class="moz-txt-citetags">> </span>constructor copia.
</font></pre>
</blockquote>
<pre wrap=""><font color="#3366ff"><font color="#330099">
En primer lugar, no se habla de un constructor copia a aquel constructor que
reciba más de un objeto de la misma clase. En tu caso, el constructor copia
se declara como:

Cola( const Cola &ref );

Esto no significa que no puedas crear un constructor 'Cola()' que acepte dos
objetos de la clase 'Cola', pero no recomiendo llamarlo "constructor copia".</font>

<font color="#330033">Comprendo, entonces el constructor copia es aquel que solo recibe una instancia de la misma clase objeto en la que esta, ¿como podría llamarle a un constructor que reciba dos instancias de ella misma?</font></font>


<font color="#330099">#include <iostream>
</font></pre>
<blockquote type="cite" style="color: rgb(0, 0, 0);">
  <pre wrap=""><font color="#330099"><span class="moz-txt-citetags">></span>
<span class="moz-txt-citetags">> </span>using namespace std;
<span class="moz-txt-citetags">></span>
<span class="moz-txt-citetags">> </span>class Cola{
<span class="moz-txt-citetags">></span>
<span class="moz-txt-citetags">> </span>   public:
<span class="moz-txt-citetags">></span>
<span class="moz-txt-citetags">> </span>   Cola(){ultimo=NULL; primero=NULL; tamano=0;}
<span class="moz-txt-citetags">></span>
<span class="moz-txt-citetags">> </span>   Cola(Cola& cuno,Cola& cdos){
<span class="moz-txt-citetags">> </span>       for(int v=0;v<=cuno.Pilatamano()-1;v++){
<span class="moz-txt-citetags">> </span>       Insertar(cuno.vector[v]);
<span class="moz-txt-citetags">> </span>       }
<span class="moz-txt-citetags">> </span>       for(int c=0;c<=cdos.Pilatamano()-1;c++){
<span class="moz-txt-citetags">> </span>       Insertar(cdos.vector[c]);
<span class="moz-txt-citetags">> </span>       }
<span class="moz-txt-citetags">> </span>       }
</font></pre>
</blockquote>
<font color="#330099">Deberías indicar que las referencias son a
objetos constantes, ya que no
tenemos ningún interés en modificar esas colas.
El error que tienes es que no inicializas ni asignas valores iniciales
a los
datos miembro como las variables, 'ultimo', 'primero', y el contador
del
tamaño actual. Esto lo hiciste para el constructor sin parámetros, pero
no
para este constructor. Sin estos valores iniciales, la función
'Insertar()'
no se ejecutará correctamente porque hace uso de los punteros.
</font>
<pre wrap=""><font color="#330033">Muchas gracias, al hacer este cambio ya se resolvió mi problema, ahora pregunto entonces ¿cada ves que haga un constructor distinto tengo que inicializar las variables para cada constructor?</font> o ¿se pueden inicializar una sola ves y que funcionen para todos los constructores que se hagan?</pre>
</body>
</html>