A, B y C son tipos de datos, de hecho, son clases. pA puede representar a cualquier clase que se generalice en la clase A, de modo que haciendo pA = B, pA se comporta como una clase B, pero sólo usa los miembros y funciones especificados en la clase A.<div>
<br></div><div>Daré un ejemplo comparando con punteros a funciones.</div><div><br></div><div>Tenemos las funciones:</div><div>double cuadrado(double x);</div><div>double tangente(double x);</div><div><br></div><div>Damos una nomenclatura para el puntero a función:</div>
<div>typedef double (*funcion_matematica)(double);</div><div><br></div><div>Si tenemos una función:</div><div>void graficar(funcion_matematica f);</div><div><br></div><div>Esta serie de instrucciones sería válida:</div><div>
funcion_matematica f;</div><div>f = cuadrado;</div><div>graficar(f);</div><div>f = tangente;</div><div>graficar(f);</div><div><br></div><div><br></div><div>Vemos que f es un puntero a función, que me da la libertad de elegir qué algoritmo usaré para calcular los valores a graficar.</div>
<div><br></div><div>Del mismo modo, quería diseñar pA de tal modo que me permita elegir qué clase usar, siempre que sea A una generalización de esa clase.</div><div><br></div><div>Espero haber aclarado qué deseo realizar.</div>
<div><br></div><div>Saludos.</div><div><br><div class="gmail_quote">El 23 de octubre de 2012 03:22, User <span dir="ltr"><<a href="mailto:usuarioanonimomysql@gmail.com" target="_blank">usuarioanonimomysql@gmail.com</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola,<br><br>Cuando haces 'pA = B;' y 'pA = C;' ¿A y C son tipos o son variables? Si son variables lo que estás haciendo son asignaciones polimorfas y puede que el polimorfismo sea una solución para el objetivo que quieres alcanzar.<br>

<br>No entiendo bien eso que pones de pA var; pA no es un tipo sino un puntero a A, ¿verdad?<br><br>Un saludo.<br><br><div class="gmail_quote">El 23 de octubre de 2012 07:07, Rafael Arias Michel <span dir="ltr"><<a href="mailto:rgam496@gmail.com" target="_blank">rgam496@gmail.com</a>></span> escribió:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">Quiero profundizar mis conocimientos en C++, y se me ocurrió hacer con clases algo que es de fácil aplicación con punteros a funciones. La idea es la siguiente:<div>

<br></div><div>Tengo tres clases: A, B y C, donde A es una generalización de las otras dos. Si pA es un "puntero" a la clase A funcionaría así:</div>
<div>pA = B;</div><div>pA = C;</div><div>Según el caso que me convenga. De modo que pueda realizar una declaración como:</div><div>pA var;</div><div>Que será de la clase B o de la clase C según la elección dada. La idea es que pueda realizar instrucciones como:</div>


<div>pA = B;</div><div>pA var1; // Equivalente a B var1;</div><div>pA = C;</div><div>pA var2; // Equivalente a C var2;</div><div><br></div><div>¿Es viable en C++ algo similar? Soy consciente de que con punteros a funciones y punteros genéricos podría emular esto sin inconvenientes, pero deseaba probar si podía lograr algo más elegante, con clase.</div>


<div><br></div><div>Agradezco sus respuestas.</div><div><br></div><div>Cordiales saludos.</div><span><font color="#888888"><div><br></div><div>Rafael Arias Michel</div><div><br></div>
</font></span><br></div></div>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">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>_______________________________________________<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></div>