[C con Clase] Duda sobre performance de clases virtuales
Ferran Ferri
ferranferri en gmail.com
Jue Oct 9 17:36:20 CEST 2008
Hola a todos de nuevo. Tengo una duda sobre el rendimiento de las clases
virtuales puras, es decir:
class A{
virtual void foo() = 0;
}
Que se implementa en otra clase, justo igual que con las interfaces de java:
class B: public A{
void foo(){
std::cout << "hola, soy B" << std::endl;
}
}
Mi pregunta es la siguiente. Si yo tengo este codigo:
A a = B();
En tiempo de ejecucion se crea una tabla de vPtr (virtaul pointers). Cada
vez que llame a a.foo(), se realiza la conversion para reconocer desde donde
viene la llamada? O solo durante la creacion de la clase. Por que si cada
vez que llamo a la funcion, el programa internamente tiene que conocer de
que tipo es, entonces en aplicaciones intensivas puede tener un rendimiento
sensiblemente peor, no es asi?
Muchas gracias
Ferran
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20081009/ebc7c98a/attachment.html>
Más información sobre la lista de distribución Cconclase