2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
bug - बहुपरिभाषा
भवतः समस्या अस्ति यत् भवतः C++ कोड् मध्ये "'data' इत्यस्य सन्दर्भः अस्पष्टः अस्ति" इति त्रुटिः अभवत् । प्रायः एषा त्रुटिः तदा भवति यदा भवान् बहुपरिभाषायुक्तं चरं सन्दर्भयितुं प्रयतते ।
भवतः कोड् मध्ये, भवान् एकं वैश्विकं चरदत्तांशं परिभाषयति तस्मिन् एव काले, C++ मानकपुस्तकालये data इति नामकं फंक्शन् टेम्पलेट् अपि अस्ति । यदा भवान् fib फंक्शन् मध्ये data इत्यस्य उपयोगं करोति तदा कम्पैलरः निर्धारयितुं न शक्नोति यत् भवान् वैश्विकचर data अथवा std::data इत्यस्य सन्दर्भं कर्तुम् इच्छति वा, अतः अस्पष्टं त्रुटिं ददाति ।
एतस्याः समस्यायाः समाधानार्थं भवान् वैश्विकचरदत्तांशस्य नाम परिवर्तयितुं शक्नोति, अथवा स्पष्टतया निर्दिष्टुं शक्नोति यत् भवान् आह्वानकाले वैश्विकचरस्य सन्दर्भं कर्तुम् इच्छति ।
समाधानम् १: वैश्विकचरनाम परिवर्तयन्तु
cpp
#निहितः<iostream>
नामस्थानस्य उपयोगेन std;
int मोड = 1e9 + 7;
int fibData [10000] //नाम परिवर्तयतु
int fib(इन्त न){
if (n==1||n==2){fibData [n]=1;fibData [n];}
if (fibData [n]! = 0) fibData [n] वापस करो;
fibData [n] = fibData [n-1] + fibData [n-2];
return fibData [n];
}
int मुख्य() {
int t;
cin>t;
for(int i=0;i
int n;
cin>n;
cout<
}
return 0;
}
समाधानम् २: स्पष्टतया निर्दिशन्तु यत् भवान् आह्वानं कुर्वन् वैश्विकचरस्य सन्दर्भं दातुम् इच्छति
cpp
#निहितः<iostream>
नामस्थानस्य उपयोगेन std;
int मोड = 1e9 + 7;
int डेटा [10000];
int fib(इन्त न){
if(n==1||n==2){::data[n]=1;return ::data[n];} // अग्रे '::' योजयन्तु यत् स्पष्टतया निर्दिष्टुं यत् भवान् सन्दर्भं कर्तुम् इच्छति वैश्विक चर
if (:: डेटा [ n]! = 0) वापसी :: डेटा [ n];
::डेटा [n]=::डेटा [n-1] +::डेटा [n-2];
return ::डेटा [n];
}
int मुख्य() {
int t;
cin>t;
for(int i=0;i
int n;
cin>n;
cout<
}
return 0;
}