¿Que parte de C no es compatible con C++?

Iniciado por 4dr14n31t0r, 2 Octubre 2016, 01:08 AM

0 Miembros y 1 Visitante están viendo este tema.

4dr14n31t0r

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++?

dato000

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.



ivancea96

Por lo general, es compatible.
Lo único, que C++ puede agregar alguna protección. por ejemplo:
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 (cpp) [Seleccionar]
char* c = (char*)malloc(1);

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

4dr14n31t0r

#3
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.