<div dir="ltr">Hola Diego,<div class="gmail_extra"><br><div class="gmail_quote">2013/1/23 Diego Alvarez <span dir="ltr"><<a href="mailto:dalvarez@wi-mobile.com" target="_blank">dalvarez@wi-mobile.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">

  

    
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <div>
      <p>Buenos dias..</p>
      <p><br></p></div></div></blockquote><div style>[CORTE]</div><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">
<div text="#000000" bgcolor="#FFFFFF"><div><p></p>
      <p>--------Triangulo.c-----------</p>
      <p>static TRIANGULO _triangulo = {1,2,1,Triangulo};</p>
      <p>void Triangulo(void)</p>
      <p>{</p>
      <p> _triangulo.cat_opuesto = 0;</p>
      <p> _triangulo.cat_adyacente = 0;</p>
      <p> _triangulo.hipotenusa = 0;</p>
      <p>}</p>
      <p>------------------------------</p>
      <p>Asi tengo lo mas parecido a una clase. </p>
      <p>el problema radica que dentro del "Metodo" no puedo usar los
        "Atributos".</p>
      <p>La idea es que no tenga que mantener una "Instancia" activa
        todo el tiempo que la aplicacion este en funcionamiento ya que
        tengo limitaciones de hardware.</p>
      <p>En el .c tengo obligatoriamente que hacer la definición de
        "mini la clase" y tendria que mantenerla "Viva", en toda la
        aplicación.</p>
      <p>Sé que es algo poco convencional pero si alguien sabe como lo
        puedo usar algo muy parecido a usar objetos les inmenzamente
        agradecido.</p></div></div></blockquote><div><br></div><div style>El problema es que no has definido la función del constructor correctamente. En C++, escribimos esto:</div><div style><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">class Triangulo</span></div><div style><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">{</span></div>
<div style><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">  Triangulo();</span></div><div style><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">  ...</span></div><div style>
<span style="font-family:arial,sans-serif;font-size:12.727272033691406px">};</span></div><div><br></div><div style>Y luego,</div><div style><br></div><div style>Triangulo :: Triangulo()<br>{<br>  ...<br>}</div><div style>
<br></div><div style>Sin embargo, internamente, la función acaba siendo la siguiente:<br><br>Triangulo( Triangulo * );<br></div><div style><br></div><div style>Antes de existir C++ como lenguaje, Bjarne Stroustrup diseñó "C con clases". Todas las "funciones miembro" eran funciones que aceptaban un puntero al objeto de tal clase como su primer parámetro. A este puntero lo nombró 'this'; he aquí la razón del puntero 'this' en C++.</div>
<div style><br></div><div style>Por lo tanto, tu conversión a C es simplemente volver a un diseño de programación modular o estructurada; esto es,</div><div style><br></div><div style>struct _Triangulo;</div><div style><div>
typedef struct _Triangulo (*<span style="font-family:arial,sans-serif;font-size:12.727272033691406px">PTRN_Triangulo)</span>( struct _Triangulo * );</div><div><br></div><div style>typedef struct _Triangulo<br></div><div style>
{</div><div style>  ...</div><div style>  PTRN_Triangulo pfTriangulo;<br>} Triangulo;</div></div><div style><br></div><div style><div>Triangulo ctor_Triangulo( Triangulo *this );</div><div><br></div><div style>Al igual que con las demás funciones "miembro".</div>
</div><div style><br></div><div style><br></div><div style>Espero que esto te oriente.</div><div><br></div><div style>Steven</div><div style><br></div></div></div></div>