<div dir="ltr">Hola Alexis,<div class="gmail_extra"><br><div class="gmail_quote">2013/5/29 Alexis García Báez <span dir="ltr"><<a href="mailto:ybaez@infomed.sld.cu" target="_blank">ybaez@infomed.sld.cu</a>></span><br>
<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">Hola a todos, estoy haciendo un proyecto de curso para la universidad en C++<br>

Borland 6 (nos obligan a usarlo)<br></blockquote><div><br></div><div style>Esta parte del código fuente no es necesaria:<br><br></div><div style><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">if (typeid(ptrCuorses[i]) == typeid(TProfesorCourse))</span><br>
</div><div><br></div><div>De hecho, hacer cosas así casi siempre conlleva a la conclusión de que uno ha diseñado incorrectamente el programa.<br></div><div><br></div><div>En tu caso, no necesitas usar 'typeid'. Como tienes clases relacionadas entre sí a través de la herencia, usamos 'dynamic_cast<>' para intentar convertir un objeto de una clase base a uno de clase derivada. En tu caso, haríamos esto:<br>
<br>TProfesorCourse *ProCourse;</div><div>...</div><div><br></div><div>ProCourse = dynamic_cast< TProfesorCourse * >( &<span style="font-family:arial,sans-serif;font-size:12.727272033691406px">ptrCourses[i] );</span></div>
<div><span style="font-family:arial,sans-serif;font-size:12.727272033691406px"><br></span></div><div style><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">if( </span>ProCourse <span style="font-family:arial,sans-serif;font-size:12.727272033691406px">)<br>
{<br>  // Conversión exitosa: usamos '</span>ProCourse'</div><div style>  ...<br>}</div><div><br></div><div style>Puedes consultar este operador de "cásting" en el capítulo 42 de nuestro curso de C++. Puedes dirigirte a: <a href="http://c.conclase.net/curso/index.php?cap=042c#CAS_dynamic">http://c.conclase.net/curso/index.php?cap=042c#CAS_dynamic</a></div>
<div><br></div><div><br></div><div style>Todo esto se basa en que queremos invocar una función miembro exclusivo de 'TProfesorCourse'; es decir, que no sea una función miembro heredada. Si se trata de una función heredada de 'TCourse', entonces deberías usar polimorfismo para no tener que averiguar explícitamente la clase original de cada objeto. Simplemente invocamos la misma función, y el sistema de polimorfismo elegiría la versión correcta basada en la clase original.</div>
<div><br></div><div><br></div><div style>Espero que esto te ayude.</div><div><br></div><div style>Steven</div><div style><br></div></div></div></div>