Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: 4dr14n31t0r en 2 Octubre 2016, 01:08 am



Título: ¿Que parte de C no es compatible con C++?
Publicado por: 4dr14n31t0r en 2 Octubre 2016, 01:08 am
Buscando en internet diferencias entre C y Objective-C me encontre con un usuario que explicaba que cualquier programa escrito en C siempre funcionará en Objective-C mientras que en C++ no siempre funcionaria

Aqui esta el comentario que dice eso (esta en ingles)
http://stackoverflow.com/a/13153293

Asi que... ¿Que parte de C no es compatible con C++?


Título: Re: ¿Que parte de C no es compatible con C++?
Publicado por: dato000 en 2 Octubre 2016, 04:04 am
No estoy seguro de entender, Compatibilidad en que sentido? en ejecutar sentencias de C en C++?? por estandar, C++ es una extensión de C, por lo que no solamente adapta su comportamiento sino que lo mejora para el uso en POO, respecto de la sintaxis, hay librerias de C++ que permiten usar explicitamente las tares con sentencias de C.

No tengo ni idea de Obj-C, en lo personal encuentro horrendo todo lo que tenga que ver apple, solo respeto ese lenguaje de programación porque fue el que se uso para el primer Prince Of Persia, mucho antes de que la gran manzana lo transformara para su propio uso.


Título: Re: ¿Que parte de C no es compatible con C++?
Publicado por: ivancea96 en 2 Octubre 2016, 18:45 pm
Por lo general, es compatible.
Lo único, que C++ puede agregar alguna protección. por ejemplo:
Código
  1. char* c = malloc(1);
Eso es correcto en C, mientras que en C++ da error. En C++ es obligatorio hacer la conversión explícita.
Código
  1. char* c = (char*)malloc(1);

Pero son cosas que se corrigen en un momento, no son problemáticas.


Título: Re: ¿Que parte de C no es compatible con C++?
Publicado por: 4dr14n31t0r en 2 Octubre 2016, 19:30 pm
En la pagina de la que puse el link que te lleva al comentario, dicen esto:

"you can write C code that is invalid in C++ or that does something different in C++ than that in C."

Traducido al español:
"Tu puedes escribir codigo C que es invalido en C++ o hace algo diferente en C++ respecto a C"

Mi pregunta es: ¿Que codigo de C hace eso? Es que tenia entendido que todo el codigo de C puede ser compilado sin problemas con un compilador de C++.

De todos modos, la respuesta de ivancea96 me vale.