¿Qué tipos de C++ se pueden crear instancias?¿Qué se puede instanciar?
conozco que después de cada crear directamente una instancia única de Foo
:
Foo bar;
Foo *bizz = new Foo();
Sin embargo, ¿qué pasa con una función de los tipos? ¿Lo siguiente crea dos instancias de int
, o es una palabra incorrecta y la memoria acaba de ser asignada?
int bar2;
int *bizz2 = new int;
¿Qué pasa con punteros? ¿El ejemplo anterior creó una instancia int *
, o simplemente asignó memoria para un int *
?
¿Usaría literales como 42
o 3.14
para crear una instancia también?
He visto el argumento de que si no se puede subclasificar un tipo, no es una clase, y si no es una clase, no se puede crear una instancia. ¿Es esto cierto?
Muy bueno. Gracias. =] – strager
Esta es probablemente la mejor respuesta hasta ahora. Las diferencias entre el estándar C++ y la terminología OOP general son interesantes. La mayoría de los programadores OOP probablemente no llamarían a algo como 'int x' una instancia de un' int', ni tendrían la posibilidad de referirse a un 'int' como un objeto; pero, sin embargo, sería técnicamente correcto referirse a él como tal. –
Sí, la "instancia" citada por Pavel no se está utilizando en absoluto en el sentido OOP habitual, ya que dice "instancia de un objeto", no "instancia de un tipo". Creo que podría ser reemplazado por "un objeto diferente con ..." y significa lo mismo. Yo especulo que la mayoría de los programadores OOP no se referirían a un int como un objeto porque fueron entrenados en Java, donde de hecho un 'int' no es un' Objeto'. Los lenguajes POO más puros no hacen excepciones para los tipos incorporados, por lo que sus enteros son objetos. En Ruby puedes aplicar dinámicamente métodos de parche de mono a la clase que los representa, para que '3.minutos 'sea igual a 180. –