la definicion de la clase (el .cpp) más el header (el .h), compilarlos en una librería estática (.a) y usarla en un programa en C?
Es eso posible?
Si es así, cómo? cuál sería el procedimiento?
![sonriente](http://static.forosdelweb.com/fdwtheme/images/smilies/smile.png)
| ||||
Respuesta: es posible compilar clase en C++ para usarla en C No. O al menos eso creo XD Lo mas parecido a las clases som las estructuras c++. En c++ una estructura es una especie de clase con los atributos públicos. Si no fuera muy complicado esta clase de la que hablas, tal vez sea posible convertirla en una estructura y así puedes trabajar con sus miembros. Si vas a estar teniendo esos problemas regularmente creo que te deberías plantear hacerte un upgrade y aprender c++ ya que justo esta es la diferencia. Trabajas con clases ;) |
| |||
Respuesta: es posible compilar clase en C++ para usarla en C Tambien puedes echar un vistazo a las tablas de funciones virtuales, serian el equivalente en C de las clases de c++. Seguro que encontraras mas informacion de ezo por ahi. Lo normal es exportar librerias de C a c++ porque soporta la sintaxi; porque no lo haces todo en c++? Saludos vosk |
| |||
Respuesta: es posible compilar clase en C++ para usarla en C La manera de hacerlo es: En el archivo de cabecera, llamémoslo, por ejemplo, Mi_clase.h, pones la definición de la(s) clase(s), así como los prototipos de las funciones relacionadas con ella(s) (constructores, destructores, etc) que deban ser vistas desde el exterior, así como las macros que vayas a definir relacionadas con tu(s) clase(s). No pongas en el archivo de cabecera código ejecutable, aunque no es ilegal puede darte muchos problemas si necesitas utilizar un depurador. En el archivo Mi_clase.cpp es donde pondrías la implementación de esas funciones cuyos prototipos has declarado en Mi_clase.h. Por supuesto, en este archivo debes #incluir Mi_clase.h. Ahora se compilaría el archivo Mi_clase.cpp, indicando que la salida es una librería estática Mi_clase.a. Una vez que tienes la librería estática Mi_clase.a, en el programa en el que vayas a utilizarla debes #incluir el archivo Mi_clase.h e indicar al enlazador (linker) que utilice el archivo Mi_clase.a. Saludos, |
| |||
Respuesta: es posible compilar clase en C++ para usarla en C Opino que no va a funcionar tan "facilmente" sin considerar el name mangling, o la maneras de evitarlo. Si esto no fuera un problema y pudiera linkear exitosamente, ¿como va a instanciar los objetos e invocar los métodos desde el lado C? En C la sintaxis de metodos no existe. Compilar es una cosa menor al lado de intentar instanciar objetos o en general resolver el problema de usar sintaxis y semantica C++ en C. ¿o no?
__________________ Visita mi perfil en LinkedIn Última edición por CalgaryCorpus; 12/06/2014 a las 17:15 |
| |||
Respuesta: es posible compilar clase en C++ para usarla en C Cita: Es cierto, y es que no me acordé de la parte que pone "para usar en C" de la pregunta.Opino que no va a funcionar tan "facilmente" sin considerar el name mangling, o la maneras de evitarlo. Entonces, si tienes un compilador C++, para qué complicarte la vida, hazlo todo en C++ y problema resuelto. Si tienes un compilador C y otro C++, la incompatibilidad a nivel de código objeto está prácticamente asegurada (echa un vistazo al enlace que dejó CalgaryCorpus). |
| ||||
Respuesta: es posible compilar clase en C++ para usarla en C ¡¡¡Saluditos!!! ![]() |
| ||||
Respuesta: es posible compilar clase en C++ para usarla en C Ah, ya, me queda claro ![]() Esa era mi duda, si se podía, pero ya veo que no. Sucede que estaba haciendo una clase de cadena en C++ y pensé que me solucionaría mucho si la pudiera utilizar en C, por la sobrecarga de operadores que hacen que sea más fácil operar. Pero bueno ya veo que no es posible voy a tener que hacer algo parecido pero con structs ![]() Gracias por las referencias y las respuestas! ![]() |
Etiquetas: |