Technology sharing

bug - plures definitiones

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

bug - plures definitiones

Problema tuum est ambiguum errorem in tuo C++ codice offendere quod "referre ad "data" est ambiguum. Hic error plerumque evenit cum referre conaris variabilem definitionem multiplicem.

In codice tuo, notitia variabilis globalis definis. Eodem tempore, munus est etiam templates nomine notas in bibliotheca C++ vexillum. Cum data in fib munus uteris, compilator determinare non potest utrum ad global notitiae variabiles an std::datas referre velis, ambiguum errorem praebet.

Ad hanc solvendam quaestionem, nomen variabilis notitiae globalis mutare potes, vel expresse denotare vis globalem variabilem in vocatione.

Solutio I: Mutare nomen variabilis global

cpp

#includere<iostream>

utens spatii spatio std;

 

int mod=1e9+7;

int fibData[10000];

 

int fib (int n){

if(n==1||n==2){fibData[n]=1;remitte fibData[n];}

si(fibData[n]!=0)reditu fibData[n];

fibData[n]=fibData[n-1]+fibData[n-2];

return fibData[n];

 

int main() {

int t;

cin &gt;&gt;t;

nam (int i = 0, i *

int n;

cin &gt;&gt;n;

cout&lt;

  } 

remittere 0;

}

Solutio II: Expresse denotare vis variabilem globalem referre quando vocantem

cpp

#includere<iostream>

utens spatii spatio std;

 

int mod=1e9+7;

int data[10000];

 

int fib (int n){

if(n==1||n==2){::data[n]=1;remitte ::data[n];} // Add ' ::' in fronte ut distincte exprimas te velle referre quod global variabilis

si(::data[n]!=0)return ::data[n];

::data[n]=::data[n-1]+::data[n-2];

return ::data[n];

 

int main() {

int t;

cin &gt;&gt;t;

nam (int i = 0, i *

int n;

cin &gt;&gt;n;

cout&lt;

  } 

remittere 0;

}