<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>

<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EstiloCorreo17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=ES link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Por supuesto Steven, claro que nos ayuda, en cuanto los pruebe te
dejo saber, gracias por todo bro.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Alexis<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>De:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Cconclase
[mailto:cconclase-bounces@listas.conclase.net] <b>En nombre de </b>Davidson,
Steven<br>
<b>Enviado el:</b> jueves, 30 de mayo de 2013 9:14<br>
<b>Para:</b> Lista de correo sobre C y C++<br>
<b>Asunto:</b> Re: [C con Clase] Duda sobre herencia<o:p></o:p></span></p>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<p class=MsoNormal>Hola Alexis,<o:p></o:p></p>

<div>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<p class=MsoNormal>2013/5/29 Alexis García Báez <<a
href="mailto:ybaez@infomed.sld.cu" target="_blank">ybaez@infomed.sld.cu</a>><o:p></o:p></p>

<p class=MsoNormal>Hola a todos, estoy haciendo un proyecto de curso para la
universidad en C++<br>
Borland 6 (nos obligan a usarlo)<o:p></o:p></p>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'>Esta parte del código fuente no
es necesaria:<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:9.5pt;font-family:"Arial","sans-serif"'>if
(typeid(ptrCuorses[i]) == typeid(TProfesorCourse))</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>De hecho, hacer cosas así casi siempre conlleva a la
conclusión de que uno ha diseñado incorrectamente el programa.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>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;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>...<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>ProCourse = dynamic_cast< TProfesorCourse * >( &<span
style='font-size:9.5pt;font-family:"Arial","sans-serif"'>ptrCourses[i] );</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:9.5pt;font-family:"Arial","sans-serif"'>if( </span>ProCourse <span
style='font-size:9.5pt;font-family:"Arial","sans-serif"'>)<br>
{<br>
  // Conversión exitosa: usamos '</span>ProCourse'<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>  ...<br>
}<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>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><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>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.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>Espero que esto te ayude.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>Steven<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

</div>

</div>

</div>

</div>

</body>

</html>