Cita:
Iniciado por xKuZz 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
Gracias por la explicación y decir que en ningún sitio vi que expliquen este modo de inicializar variables. ¿eso vale para C también o es solo a partir de alguna revisión de c++?
Otra cosa que no se que hace es esto:
using Ruta = std::vector<Posicion>;
¿que hace exactamente?
Otra cosa ¿el código que puso eferion hacia:
fila (fila)
Y me dices que eso equivaldría a inicializar la variable asi:
fila=fila
Donde la primera seria una variable miembro de la estructura y la segunda seria un parámetro pero en ambos casos se llama igual la variable y tenia entendido que eso no estaba permitido ¿podéis explicarme eso también?
Otra duda que tengo del código de eferion es si siempre daría la misma solución o cambiaría en cada ejecución. Si siempre da la misma me interesaría hacer que ese código me diera todas las soluciones correctas.
Teniendo esos temas resueltos es cuestión de tracear e intentar entender su funcionamiento.
Gracias a todos.