Es una llamada al constructor, en realidad no es más que una forma abreviada de hacer lo siguiente:
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
}
Un ejemplo todavía más simple:
Código C++:
Ver originalint i(5); // i se inicializa a 5
int j = 5; // j se inicializa a true
bool correcto(i==j); // correcto se inicializa a true
bool falso = i != j; // falso se inicializa a false