प्रौद्योगिकी साझेदारी

bug - बहुपरिभाषा

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&gt;t;

for(int i=0;i

int n;

cin&gt;n;

cout&lt;

  } 

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&gt;t;

for(int i=0;i

int n;

cin&gt;n;

cout&lt;

  } 

return 0;

}