<br><br>---------- Forwarded message ----------<br><span class="gmail_quote">From: <b class="gmail_sendername">Ferran Ferri</b> <<a href="mailto:ferranferri@gmail.com">ferranferri@gmail.com</a>><br>Date: Dec 1, 2006 12:53 PM
<br>Subject: Re: [C con Clase] Metodos de clase y metodos de instancia, diferencia<br>To: Lista de correo sobre C y C++ <<a href="mailto:cconclase@listas.conclase.net">cconclase@listas.conclase.net</a>><br><br></span>
















<div link="blue" vlink="purple" lang="ES">

<div>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">No es tan dificil. Mira, aquí tengo una
clase</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Class A{</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>   
</span>A(){</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>           
</span>printf("soy un constructor");</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>    </span>}</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>    </span>void
funcA(){</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>           
</span>printf("soy una funcion");</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>    </span>}</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">}</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Esto es la declaracion de una clase. Tiene
un metodo llamado funcA. Este metodo es un metodo de instancia. Si le pusiera
la palabra static</span></font><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="ES-TRAD"> se convertiria en metodo de clase. La diferencia? Imagina que
quisieramos hacer una clase que cada vez que llamemos al constructor incremente
un contador, por ejemplo, para saber cuantas instancias tenemos de esa clase.</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="ES-TRAD"> </span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Class A{</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>    </span>private:</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>          
</span>int b;</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="EN-GB"><span>           </span>static int contador;</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="EN-GB"><span>    </span>public:</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="EN-GB"><span>    </span>A(){</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="EN-GB"><span>            </span></span></font><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">
printf("soy un constructor");</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>           
</span>A::contador++;</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>           
</span>b++</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>    </span>}</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>    </span>void
funcA(){</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>           
</span>printf("%d %d",A::cont,b);</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><span>    </span>}</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">}</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="ES-TRAD"> </span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="ES-TRAD">Que
estamos haciendo? Pues si te fijas en la clase, tenemos dato miembro llamado b
y otra llamada cont que es estatico. El estatico crecera siempre. B sera
siempre 1 (si esta correctamente inicializado, que aquí no esta). La idea de
las funciones es exactamente lo mismo. Cuando tienes una funcion de clase,
llamas a esa funcion sin necesidad de tener una instancia de la clase, es
decir, sin necesidad de habere creado antes un objeto de esa clase. Cuando se
usan este tipo de funciones? Cuando tienes una clase que quieres llamar sin
tener la seguridad de haberla creado, por ejemplo.</span></font></p>

<div>

<p><font color="navy" face="Courier" size="2"><span style="font-size: 10pt; font-family: Courier; color: navy;"><a href="mailto:fferri@redsauce.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
Ferran Ferri</a></span></font></p>

</div>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><br></span></font></p><p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">
Perfecto
gracias a vuestros mensajes ya lo tengo claro, creo que el problema que
tengo es de terminologia, intento leer todo lo que encuentro de estos
temas pero cada uno utiliza una forma diferente de decir las cosas.</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"><br>
</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Saludos </span></font></p>
<br><div style="border-style: none none none solid; border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color blue; border-width: medium medium medium 1.5pt; padding: 0cm 0cm 0cm 4pt;">

<div>

<div style="text-align: center;" align="center"><font face="Times New Roman" size="3"><span style="font-size: 12pt;" lang="EN-US">    <br></span></font></div></div></div>

</div>

</div>


<br>

<p><font size="2">--<br>
No virus found in this outgoing message.<br>
Checked by AVG Free Edition.<br>
Version: 7.1.409 / Virus Database: 268.15.3/561 - Release Date: 01/12/2006<br>
</font> </p>

<br>_______________________________________________<br>Cconclase mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a onclick="return top.js.OpenExtLink(window,event,this)" 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><br><br>