Al tener el constructor de la manera que
eferion hace que a la variable del struct Posicion fila se inicialize con el valor del parámetro fila, y la variable con nombre columna se inicialize con el valor de columna. Una definición formal de dicha manera de inicializar datos llamada lista de inicialización y algunos ejemplos
Código C++:
Ver originalstruct definicion_formal {
int variable1;
int variable2;
// Constructor sin parámetros. Inicializa variable1 a 0 y variable2 a 50
definicion_formal() : variable1(0), variable2(50) {}
// Constructor con parámetros. Inicializa variable1 con el valor de a y variable2 con el valor de b
definicion_formal(int a, int b) : variable1(a), variable2(b);
};
// Por tanto si ahora declaro
int main() {
definicion_formal ejemplo1; // Ejemplo 1 tiene variable1 a 0 y variable2 a 50
definicion_formal ejemplo2(3, 4); // Ejemplo 2 tiene variable1 a 3 y variable2 a 4
}
En cuanto lo de
size_t, como te dijo
eferion size_t es un alias usando ampliamente por las estructuras de datos en C++ para indicar el tamaño de una estructura, en concreto es un tipo de
unsigned int que debería ser capaz de almacenar el tamaño máximo de una estructura. En ningún momento es llamado como función siempre es usado como indicador del tipo.
Espero haber ayudado a que lo comprendas mejor.