Las funciones no se crean en la instanciación, están en su programa al igual que cualquier otra función. Sin embargo, todas estas funciones obtienen un puntero “invisible” como primer argumento.
Entonces el código:
clase Foo {
privado:
int x;
público:
barra vacía () {
x = 5
}
};
- ¿Por qué la mayoría de las cosas se oscurecen después de mojarse?
- ¿Qué significaría si tuviera una varilla girando en el espacio a una longitud de 60 rpm de 2e8 my una rueda al final girando a 2e8 m / s en la misma dirección?
- ¿Por qué los lugares están relacionados con el tiempo?
- ¿1 año luz es igual a cuántos años de la Tierra?
- ¿Cómo describe un objeto que no se mueve a través del espacio tridimensional sino que se mueve a través del tiempo?
int main () {
Foo Foo;
foo.Bar ();
devuelve 0;
}
Realmente solo se traduce a:
struct Foo {
int x;
}
int Bar (Foo * foo) {
foo-> x = 5;
}
int main () {
Foo Foo;
Bar (y foo);
devuelve 0;
}
Por supuesto, hay algún cambio de nombre y los modificadores de acceso se verifican en tiempo de compilación, pero esta es la idea básica.
NOTA: Esto es lo que sucede si no estamos hablando de funciones virtuales. Entonces es una historia completamente diferente, donde se construye una v-table para cada clase.