subconjunto - ¿Qué impide que C++ sea un superconjunto estricto de C?
subconjunto impropio (5)
Posible duplicado:
"C subconjunto de C ++" -> ¿Dónde no? ejemplos?
Soy consciente de que C ++ no es un superconjunto estricto de C. ¿Qué características de lenguaje evitan que C ++ sea un superconjunto de C?
C ++ tampoco admite matrices de longitud variable, donde:
int array[n];
es válido en C, pero no en C ++. Una versión en C ++ de lo anterior sería:
int *array = new int[n];
...
delete [] array;
El elefante en la habitación: lo siguiente es válido C pero no válido C ++.
int typename = 1;
Sustituya su palabra reservada favorita de C ++.
Hay una entrada especial de wiki que resume muchos temas.
Un simple ejemplo, considera esta declaración:
int f();
Esto es válido C, pero no válido C ++: f(3, 2, -5, "wtf");
Explicación: en C, int f()
se trata como int f(...)
(al menos en el sitio de la primera llamada). Declare como int f(void)
si no desea que f
tome parámetros.
Una desde la parte superior de mi cabeza: C ++ no admite int por defecto.