La entrada anterior fue básicamente introductoria, pero se armaron unas tremendas discusiones que casi terminan con mis temas futuros.
Disculpa el escepticismo pero dudo que en tus temas futuros hayan estado incluidos el manejo de cadenas, punteros y demás, cualquiera que haya leído tus argumentos anteriores se da cuenta que escribiste una entrada por salir del paso, porque se te ocurrió despotricar contra los programas GNU, y metiste en el mismo saco a C y C++.
C++ es C orientado a objetos
Empezaste mal y continúas mal, C++ no es C orientado a objetos, hay características como la declaración de variables, valor de parámetros por defecto, sobrecarga de funciones que no tiene C, y no tiene en absoluto nada que ver con la orientación a objetos, tu segunda falacia, bajo ese argumento podemos decir que Java es el C++ en máquina virtual, que PHP es el C++ orientado a la web y perl el C++ confuso.
Son tan iguales que el compilador no es capaz de compilar un archivo con extensión ".cpp", pero con código fuente en C
Respecto a la compilación tenía mis dudas, pero luego de comprobar que no es así me doy cuenta que eres un farsante, la compilación es perfectamente posible, lo que muestra que nunca en tu vida has visto un Makefile, no hace falta ser un detective para darse cuenta de ello, tercera falacia.
Pero los problemas no terminan ahí, hasta los binarios son incompatibles: enlazar una función C con otra C++ es una tarea demoníaca
Añadir un #ifdef __cplusplus es una tarea demoniaca? Confieso que nunca he tratado de enlazar librerías de C++ a un programa en C, así que te doy el beneficio de la duda, por cierto tampoco es tan fácil de compartir una función en una DLL con parámetros string en delphi, tienes que usar una librería para ello, o es lo que dice la documentación, nunca lo hice, usaba pchar.
Vale mencionar a Pascal, el cual evolucionó de lenguaje estructurado al de objetos sin presentar incompatibilidad hacía "abajo".
Eso es porque sobre el mismo lenguaje añadieron el soporte a objetos, ahora, quieres incompatibilidades? aquí las tienes [fi.udc.es], quieres más? no existe el overload o los parámetros por defecto en Turbo Pascal (exactamente no recuerdo cual de las dos no existía) y sí en Object Pascal, que estoy comparando diferentes lenguajes? Pues hey, tú empezaste.
Y ahora que se me viene a la memoria el tema de las incompatibilidades y recordando tu ejemplo de int BO; os voy a dar un ejemplo que, parafraseando a Inconexo, os va a helar la sangre, trata de declarar en Pascal una función llamada Integer, Boolean o Float, el compilador te lo va a permitir, peor aún, la sintaxis del cast es la misma que de la llamada de parámetros a función, realmente espantoso, vale, eso fue off-topic.
Por cierto, programar en KDE/Qt es fácil, pero no gracias a C++, sino todo lo contrario: gracias a Qt que tiene sus propias funciones desde la fecha hasta dibujar una figura 3D
Tienes las STL para los strings y las funciones de tratamiento de fechas están en el ANSI C, no se me viene a la cabeza un lenguaje que nativamente soporte 3D, quizás GW-Basic, que en un screen 2:circle 10, 10, 30 tenías una figura en 2D pero no recuerdo más.
Confieso que nunca he tratado de enlazar librerías de C++ a un programa en C
No sabía que se podían linkar funciones C++ en código C. Para hacerlo hay que declarar las funciones como "extern C".
extern "C" void f(int i, char c, float x);
Ya que C no tiene sobrecarga y no guarda info de los tipos de parámetro en los símbolos de sus bibliotecas, las funciones extern "C" no se pueden sobrecargar.
por
pobrecito hablador
el Martes, 09 Marzo de 2010, 06:53h
(#1207741)
ok, pero por favor, cambia "falacia" por "falso", cuando te refieras a lo opuesto a verdadero. Un razonamiento falaz es aquel mal formulado, no necesariamente falso ni verdadero.
Aburre leer falacias
(Puntos:2, Interesante)( Última bitácora: Viernes, 27 Abril de 2012, 14:32h )
Y ahora que se me viene a la memoria el tema de las incompatibilidades y recordando tu ejemplo de int BO; os voy a dar un ejemplo que, parafraseando a Inconexo, os va a helar la sangre, trata de declarar en Pascal una función llamada Integer, Boolean o Float, el compilador te lo va a permitir, peor aún, la sintaxis del cast es la misma que de la llamada de parámetros a función, realmente espantoso, vale, eso fue off-topic.
Si no te gustan mis argumentos tengo otros.
Re:Aburre leer falacias
(Puntos:2)( http://press.asqueados.net/ | Última bitácora: Jueves, 17 Abril de 2014, 09:50h )
No sabía que se podían linkar funciones C++ en código C. Para hacerlo hay que declarar las funciones como "extern C". Ya que C no tiene sobrecarga y no guarda info de los tipos de parámetro en los símbolos de sus bibliotecas, las funciones extern "C" no se pueden sobrecargar.
Lo he encontrado en un útil FAQ sobre la mezcla de C y C++ [parashift.com].
Envíos descartados por Mu [barrapunto.com]
Re:Aburre leer falacias
(Puntos:0)