Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Aburre leer falacias

    (Puntos:2, Interesante)
    por el inspector ardilla (46348) el Lunes, 08 Marzo de 2010, 06:52h (#1207407)
    ( Última bitácora: Viernes, 27 Abril de 2012, 14:32h )

    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.

    Si no te gustan mis argumentos tengo otros.
    Puntos de inicio:    1  punto
    Moderación   +1  
    Modificador extra 'Interesante'   0  

    Total marcador:   2  
  • por Mu (11278) el Lunes, 08 Marzo de 2010, 12:43h (#1207523)
    ( http://press.asqueados.net/ | Última bitácora: Jueves, 17 Abril de 2014, 09:50h )

    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.

    Lo he encontrado en un útil FAQ sobre la mezcla de C y C++ [parashift.com].
    --
    Envíos descartados por Mu [barrapunto.com]
    [ Padre ]
  • por Mu (11278) el Martes, 09 Marzo de 2010, 09:03h (#1207782)
    ( http://press.asqueados.net/ | Última bitácora: Jueves, 17 Abril de 2014, 09:50h )
    No sé si viene al caso, pero sólo por aclarar.

    En lógica una falacia es una afirmación tal que siempre será falsa. Por ejemplo: Socrates es hombre y no es hombre.
    --
    Envíos descartados por Mu [barrapunto.com]
    [ Padre ]
  • 1 respuesta por debajo de tu umbral de lectura actual.