Wow!!<div>Como siempre, muchas gracias Steven!!<br><br><div class="gmail_quote">El 9 de enero de 2013 16:49, Davidson, Steven <span dir="ltr"><<a href="mailto:srd4121@njit.edu" target="_blank">srd4121@njit.edu</a>></span> escribió:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hola Omar,<div class="gmail_extra"><br><div class="gmail_quote">2013/1/9 omar mendoza <span dir="ltr"><<a href="mailto:omar.p9@gmail.com" target="_blank">omar.p9@gmail.com</a>></span><div>

<br></div>
<div>[CORTE]</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>y después en main,cpp tengo que <br>


</div><div>

<div><br></div><div><div>#include "claseB.cpp"</div><div><br></div><div>int main(int argc, const char *argv[]) {</div><div><br></div><div>    claseA *ca = new claseB(1,2);</div><div>    if (ca != NULL) {</div><div>




      delete ca;</div><div>      ca = NULL;</div><div>    }</div><div>  return 0;</div><div>}</div></div><div><br></div><div><br></div><div>pero resulta que no se ejecuta el destructor de la claseB. En este ejemplo no creo memoria dinámica con new en claseB, pero si lo hiciera se perdería y no podría liberarla...</div>




<div>Cómo podría resolver éste problema??</div><div><br></div></div></blockquote><div><br></div></div><div>El problema es que no estás usando objetos polimórficos. Tienes herencia, pero no polimorfismo. La solución es declarando el destructor en la clase 'A' como virtual. Esto es,</div>


<div><br></div><div><div class="im"><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">class claseA</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">{</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">


protected:</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">  int num;</div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><br></div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">


public:</div></div><div style="font-family:arial,sans-serif;font-size:12.727272033691406px">  virtual ~claseA()  { ... }<br></div></div><div>};</div><div><br></div><div>Sugiero que indiques 'virtual' para las funciones miembro de las clases derivadas; así se entiende mejor que se trata de clases polimórficas.</div>


<div><br></div><div><br></div><div>Espero haber aclarado la duda.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Steven</div><div><br></div></font></span></div></div></div>
<br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Omar Jonathan Mendoza Bernal</div>

"Las cicatrices nos recuerdan que el pasado fue real" Dr. Lecter en Dragón Rojo 
</div>