<div dir="ltr">Hola Miguel Alejandro,<br><div class="gmail_extra"><br><div class="gmail_quote">2014-07-25 9:40 GMT-04:00 Miguel Alejandro Jimenez Ramirez <span dir="ltr"><<a href="mailto:cerberbero@gmail.com" target="_blank">cerberbero@gmail.com</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 ,el dia de hoy tengo una duda , es algo conceptual.<br>

Cuando tengo un archive header y aparecen declaraciones asi:<br>
<br>
//Forward declaration<br>
<br>
class A;<br>
Class B;<br>
.<br>
.<br>
.<br>
<br>
Que significa el comentario , forward declaration , no entiendo bien ,<br>
ya que he intentado ver la declaracion de algunas de las clases y no<br>
lo logro , no se si me explico bien , pero si me entieneden la<br>
pregunta , me gustaria aclarar esta duda.<br>
<span class=""><font color="#888888"><br></font></span></blockquote><div><br></div><div>Se trata de declaraciones adelantadas o anticipadas. Esto se hace para establecer las entidades al compilador, ya que a veces sólo necesita conocer su declaración antes de usarla; o sea, ¿qué es esto? En cuanto a clases concierne, es posible que tengamos una situación en la que ambas clases contienen un objeto de la otra clase. Por ejemplo,</div>
<div><br></div><div>class ClaseA</div><div>{<br>  ClaseB *pObj;  // Error: ¿qué es 'ClaseB'?<br>};</div><div><br></div><div>class ClaseB<br>{<br>  ClaseA *pObj;</div><div>};</div><div><br></div><div>Aquí tenemos un error, porque la definición de 'ClaseA' depende de la declaración de 'ClaseB'. El compilador no sabe qué es 'ClaseB': ¿es una función? ¿es una clase? ¿es un 'typedef'? Por esto, el compilador requiere que existan las declaraciones antes de poder usar tales entidades.</div>
<div><br></div><div>La solución es declarar cada entidad y luego completar sus definiciones; esto es,</div><div><br></div><div>// Para que el compilador entienda qué es cada entidad: son clases</div><div>class ClaseA;</div>
<div>class ClaseB;</div><div><br></div><div><div>class ClaseA</div><div>{</div><div>  ClaseB *pObj;</div><div>};</div><div><br></div><div>class ClaseB</div><div>{</div><div>  ClaseA *pObj;</div><div>};</div></div><div><br>
</div><div><br></div><div>Espero haber aclarado la duda.</div><div><br></div><div>Steven</div><div><br></div></div></div></div>