Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
error - múltiples definiciones
Su problema es que encontró un error "la referencia a 'datos' es ambigua" en su código C++. Este error suele ocurrir cuando intenta hacer referencia a una variable que tiene múltiples definiciones.
En su código, define una variable global datos. Al mismo tiempo, también hay una plantilla de función llamada datos en la biblioteca estándar de C++. Cuando usa datos en la función fib, el compilador no puede determinar si desea hacer referencia a la variable global data o std::data, por lo que genera un error ambiguo.
Para resolver este problema, puede cambiar el nombre de los datos de la variable global o especificar explícitamente que desea hacer referencia a la variable global al llamar.
Solución 1: cambiar el nombre de la variable global
PPP-CPP
#incluir<iostream>
utilizando el espacio de nombres std;
int mod=1e9+7;
int fibData[10000]; //Cambiar nombre
entero fib(entero n){
si (n==1||n==2){fibData[n]=1;devuelve fibData[n];}
si (fibData[n]!=0)devuelve fibData[n];
fibData[n]=fibData[n-1]+fibData[n-2];
devuelve fibData[n];
}
int principal() {
entero t;
cin>>t;
para(int i=0;i
entero n;
cin>>n;
cuenta<
}
devuelve 0;
}
Solución 2: especifique explícitamente que desea hacer referencia a una variable global al llamar
PPP-CPP
#incluir<iostream>
utilizando el espacio de nombres std;
int mod=1e9+7;
int datos[10000];
entero fib(entero n){
if(n==1||n==2){::data[n]=1;return ::data[n];} // Agrega '::' delante para especificar claramente que deseas hacer referencia al variable global
si(::datos[n]!=0)devuelve ::datos[n];
::datos[n]=::datos[n-1]+::datos[n-2];
devolver ::datos[n];
}
int principal() {
entero t;
cin>>t;
para(int i=0;i
entero n;
cin>>n;
cuenta<
}
devuelve 0;
}