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

ग आरम्भस्य मूलभूताः (१) .

2024-07-12

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

Pirate Cat Ou’s blog इत्यत्र सर्वेषां स्वागतम्——

दीर्घविरामस्य अनन्तरं वयं कठिनतया अध्ययनं कुर्मः!

सामग्रीसूची

1.नामस्थानं नामस्थानम्

नामस्थानस्य अस्तित्वमूल्यं : १.

नामस्थानपरिभाषा : १.

नामस्थानस्य उपयोगः : १.

2.C++ इनपुट् तथा आउटपुट् फंक्शन्स्

उपयुञ्जताम्‌:

3.पूर्वनिर्धारित पैरामीटर्स

4. कार्य अतिभार

निगमन:


1.नामस्थानं नामस्थानम्

नामस्थानस्य अस्तित्वमूल्यं : १.

C/C++ इत्यस्मिन् पश्चात् शिक्षितव्याः चराः, कार्याणि, वर्गाः च बहुसंख्याकाः सन्ति ।नामस्थानस्य उपयोगस्य उद्देश्यं नामकरणविग्रहं वा नामप्रदूषणं वा परिहरितुं परिचयकनामस्थानीयीकरणं भवति ।

संक्षेपेण यदा एकस्मिन् परियोजनायां समाननाम्ना बहुविधचराः सन्ति तदा नामकरणविग्रहं वा नामप्रदूषणं वा निवारयितुं शक्नोति, भेदस्य सुविधां च कर्तुं शक्नोति बृहत्परियोजनानां विकासे अनिवार्यम् इति वक्तुं शक्यते ।

नामस्थानपरिभाषा : १.

नामस्थानं नामस्थानस्य कीवर्डः अस्ति कीवर्डस्य अनन्तरं नामस्थानस्य नाम योजयतु, व्याप्तिम् सीमितुं च {} योजयतु ।

  1. namespace hdmo
  2. {
  3. int a = 1;
  4. }

सूचना: नामस्थानस्य अन्तिमस्य ' } ' इत्यस्य अनन्तरं ' ; ' इति योजयितुं आवश्यकता नास्ति, यत् संरचनायाः भिन्नं कार्यसदृशं च भवति ।

नामस्थानस्य सारः अस्ति यत् वयं वैश्विकव्याप्तेः स्वतन्त्रं डोमेन् निर्मामः यथा प्रत्येकस्य फंक्शन् इत्यस्य व्याप्तिः भवति तथा प्रत्येकस्मिन् फंक्शन् इत्यस्मिन् पैरामीटर्स् इत्यस्य व्याप्तिः फंक्शन् इत्यस्य व्याप्तेः अन्तः एव भवतिनामस्थानानां कृते अपि तथैव भवतिनामस्थाने कार्याणां, चरानाम् इत्यादीनां व्याप्तिः नामस्थानस्य सीमितव्याप्तेः अन्तः भवति, नामस्थानम् आह्वयित्वा तस्य उपयोगः आवश्यकः ।, किन्तु द्रष्टव्यम्नामस्थाने इत्यादिषु कार्यचरानाम् वैश्विकजीवनचक्रं भवति

नामस्थानं केवलं वैश्विकव्याप्तौ परिभाषितुं शक्यते, तथा च नेस्ट् अपि कर्तुं शक्यते ।

एकस्मिन् एव परियोजनायां समाननामस्थानानि समाननामस्थानानि इति गण्यन्ते ।

  1. namespace hdmo
  2. {
  3. int a = 1;
  4. }
  5. namespace hdmo
  6. {
  7. int b = 1;
  8. }

अस्मिन् समये hdmo द्वौ समानं नामस्थानं प्रतिनिधियति ।

अन्यभाषासु कार्यैः सह विग्रहं निवारयितुं C++ मानकपुस्तकालयः std (standard) इति नामस्थाने संगृह्यते

using namespace std;

केवलं C++ मानकपुस्तकालयं समावेशयितुं ।

नामस्थानस्य उपयोगः : १.

यतः नामस्थानं डोमेन् अस्ति, यदि भवान् तस्य फंक्शन् वेरिएबल्स् इत्यादीन् सामग्रीन् बाह्यरूपेण उपयोक्तुं इच्छति तर्हि एतत् कार्यं प्राप्तुं भवद्भिः स्ट्रक्चर इव ऑपरेटर् इत्यस्य उपयोगः करणीयः

नामस्थानस्य आह्वानसञ्चालकः द्वौ कोलनौ भवतः::

  1. #include <stdio.h>
  2. namespace hdmo
  3. {
  4. int a = 1;
  5. }
  6. int a = 2;
  7. int main()
  8. {
  9. printf("%dn", a);
  10. printf("%dn", ::a);
  11. printf("%dn", hdmo::a);
  12. return 0;
  13. }

आउटपुट् रिजल्ट् तः वयं ज्ञातुं शक्नुमः यत्: यदा :: इत्यस्य अग्रे रिक्तं भवति तदा ग्लोबल स्कोप् इत्यस्य चराः पूर्वनिर्धारितरूपेण आह्वयन्ति ।

नामस्थाने चर, फंक्शन् इत्यादीनां उपयोगस्य त्रयः उपायाः सन्ति- १.

1.एकवारं भ्रमणम्: नामस्थाने चरानाम् अथवा कार्याणां व्यक्तिगतरूपेण अभिगमनाय :: इत्यस्य उपयोगं कुर्वन्तु, यत् तस्य उपयोगस्य सुरक्षिततमः उपायः अस्ति;

2.एकविस्तारः : केवलं चरस्य अथवा फंक्शन् इत्यस्य विस्तारार्थं using इत्यस्य उपयोगं कुर्वन्तु विस्तारस्य अनन्तरं तस्य व्याप्तिः वैश्विकव्याप्तिः भवति तथा च नामस्थानेन प्रतिबन्धितः नास्ति । सामान्यपरिस्थितौ विग्रहं विना एतस्य पद्धतेः उपयोगः शस्यते ।

3.पूर्णतया विस्तारितम्: प्रत्यक्षतया सर्वाणि निर्दिष्टानि नामस्थानानि विस्तारयन्तु परियोजनासु अस्य उपयोगः अनुशंसितः नास्ति cout, उपसर्गस्य आवश्यकता नास्ति std::)

2.C++ इनपुट् तथा आउटपुट् फंक्शन्स्

C भाषायां अस्माकं input and output statements क्रमशः scanf तथा printf भवन्ति C++ C भाषायाः input and output statements इत्यनेन सह अपि संगतम् अस्ति, परन्तु अस्य स्वकीयाः input and output functions अपि सन्ति, यथा cin तथा cout

cin तथा cout इत्येतयोः कार्ययोः उपयोगाय भवद्भिः अवश्यमेव समावेशः करणीयः<iostream>मानक-निवेश-निर्गम-धारा-पुस्तकालयः, तथा च C++ मानक-कार्य-पुस्तकालयः अवश्यमेव अन्तर्भवति

  1. #include <iostream>
  2. using namespace std;

उपयुञ्जताम्‌:

cin इत्यस्य उपयोगं कुर्वन् प्रवेशार्थं '&gt;&gt;' इत्यस्य उपयोगं कुर्वन्तु;

cout इत्यस्य उपयोगं कुर्वन् आउटपुट् कर्तुं '&lt;&lt;' इत्यस्य उपयोगं कुर्वन्तु ।

&lt;&lt; स्ट्रीम इन्सर्शन ऑपरेटर् अस्ति, &gt;&gt; स्ट्रीम एक्सट्रैक्शन ऑपरेटर् अस्ति (&lt;&lt; तथा &gt;&gt; C भाषायां वामशिफ्ट् तथा राइट् शिफ्ट् ऑपरेटर् अपि प्रतिनिधियन्ति)

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int a = 0;
  6. cin >> a;
  7. cout << a << endl;
  8. printf("%dn", a);
  9. return 0;
  10. }

वयं प्रथमं केवलं endl इत्येतत् line break 'n' इति अवगन्तुं शक्नुमः मूलभूतः भागः अधिकं न व्याख्यास्यते, भविष्ये अध्ययनेषु च योजितः भविष्यति ।

उपरिष्टात् कोड् तः वयं द्रष्टुं शक्नुमः यत् cin तथा cout इत्येतयोः %d, %c इत्यादीनां उपयोगं scanf तथा printf इत्यादीनां चरानाम् input and output format इत्यस्य नियन्त्रणार्थं न भवतिcin तथा cout स्वयमेव चरस्य प्रकारान् दत्तांशं च चिन्तयितुं शक्नुवन्ति, यत् तुल्यकालिकं सुलभं स्थानम् अस्ति ।

VS2022 वातावरणे उपरिष्टात् कोडः नास्ति<stdio.h> , भवान् scanf तथा prinf इत्येतयोः कार्ययोः अपि उपयोगं कर्तुं शक्नोति, यतः VS<iostream>परोक्षरूपेण समावेशितम्<stdio.h>, अतः प्रत्यक्षतया तस्य उपयोगः कर्तुं शक्यते, परन्तु अन्येषु संकलनवातावरणेषु अस्य समावेशस्य आवश्यकता भवितुम् अर्हति ।<stdio.h> .

यदा भवान् नियन्त्रणसटीकता इत्यादीनि कार्याणि प्राप्तुम् इच्छति तदा C भाषायाः निवेश-निर्गम-विधिषु प्रत्यक्षतया उपयोगः अनुशंसितः अस्ति ।

ज्ञातव्यं यत् scanf तथा printf इत्येतत् cin तथा cout इत्येतयोः अपेक्षया द्रुततरं भवति प्रतियोगितायां scanf तथा printf इत्येतयोः उपयोगः प्रत्यक्षतया stuck running time इत्यस्य प्रश्ने कर्तुं शक्यते, परन्तु अयं लेखः No व्याख्या अद्यापि।

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. // 在io需求⽐较⾼的地⽅,如部分⼤量输⼊的竞赛题中,加上以下3⾏代码
  6. // 可以提⾼C++IO效率
  7. ios_base::sync_with_stdio(false);
  8. cin.tie(nullptr);
  9. cout.tie(nullptr);
  10. return 0;
  11. }

3.पूर्वनिर्धारित पैरामीटर्स

पूर्वनिर्धारितपैरामीटर्स् फंक्शन् घोषयन्ते वा परिभाषितुं वा पूर्वनिर्धारितं मूल्यं दातुं भवन्ति यदा वयं फंक्शन् आह्वयेम, यदि डिफ़ॉल्ट् पैरामीटर् मूल्यं न पारयति तर्हि परिभाषितं पूर्वनिर्धारितं मूल्यं यदि पारितं भवति तर्हि पारितं मूल्यं उपयुज्यते मूल्यं प्रयुक्तं भविष्यति।

पूर्वनिर्धारितमापदण्डाः पूर्णपूर्वनिर्धारितरूपेण अर्धपूर्वनिर्धारितरूपेण च विभक्ताः भवन्ति इति अर्थः यत् सर्वेषां औपचारिकमापदण्डानां पूर्वनिर्धारितमूल्यानि दत्तानि सन्ति, अर्धपूर्वनिर्धारितमापदण्डाः च पूर्वनिर्धारितमूल्यानि दत्तानि इति अर्थः तथा च C++ इत्यनेन निर्धारितं यत् अर्ध-पूर्वनिर्धारित-मापदण्डाः क्रमशः दक्षिणतः वामपर्यन्तं पूर्वनिर्धारिताः भवेयुः, तथा च अन्तराल-समये पूर्वनिर्धारित-मूल्यानां कृते कूर्दितुं न शक्नुवन्ति ।

  1. #include <iostream>
  2. using namespace std;
  3. namespace hdmo
  4. {
  5. //全缺省
  6. int Fun1(int x = 0, int y = 0)
  7. {
  8. return x + y;
  9. }
  10. //半缺省
  11. int Fun2(int x, int y = 0)
  12. {
  13. return x + y;
  14. }
  15. }
  16. int main()
  17. {
  18. cout << hdmo::Fun1() << endl;//全缺省可以不传参
  19. cout << hdmo::Fun1(1) << endl;
  20. cout << hdmo::Fun1(1,1) << endl;
  21. /*
  22. cout << hdmo::Fun2() << endl;//半缺省不能不传参
  23. */
  24. cout << hdmo::Fun2(2) << endl;
  25. cout << hdmo::Fun2(2,2) << endl;
  26. return 0;
  27. }

उपर्युक्तसङ्केतस्य परिणामः अस्ति : १.

अर्ध-पूर्वनिर्धारितेन पूर्वनिर्धारितमापदण्डानां परिभाषां निरन्तरता च दक्षिणतः वामपर्यन्तं सुनिश्चितं कर्तव्यं, यत्र वामे सामान्यमापदण्डाः, दक्षिणभागे पूर्वनिर्धारितमापदण्डाः च सन्ति ।

4. कार्य अतिभार

फंक्शन् ओवरलोडिंग् इत्यस्य अर्थः अस्ति यत् एकस्मिन् समये समानं फंक्शन् नाम युक्ताः बहुविधाः फंक्शन्स् सन्ति, यत् एकमेव फंक्शन् नाम एकस्मिन् समये बहुविधं फंक्शन् प्रतिनिधियति, यत् ओवरलोडिंग् अस्ति ।

तयोः मध्ये अन्तरं पैरामीटर् प्रकारेण संख्यायाश्च निर्धारितः भवति, तस्य रिटर्न् वैल्यू प्रकारेण सह किमपि सम्बन्धः नास्ति ।समाननाम्ना द्वौ फंक्शन् यस्य केवलं भिन्नाः रिटर्न् वैल्यू प्रकाराः सन्ति, तेषां ओवरलोड् कर्तुं न शक्यते

  1. #include <iostream>
  2. using namespace std;
  3. namespace hdmo
  4. {
  5. int Add(int x, int y)
  6. {
  7. return x + y;
  8. }
  9. double Add(double x, int y)
  10. {
  11. return x + y;
  12. }
  13. double Add(int x, double y)
  14. {
  15. return x + y;
  16. }
  17. double Add(double x, double y)
  18. {
  19. return x + y;
  20. }
  21. }
  22. int main()
  23. {
  24. using hdmo::Add;
  25. cout << Add(1, 1) << endl;
  26. cout << Add(1.1, 1) << endl;
  27. cout << Add(1, 1.1) << endl;
  28. cout << Add(1.1, 1.1) << endl;
  29. return 0;
  30. }

परिणामः अस्ति यत् - १.

उपरिष्टात् कोड् तः वयं पश्यामः यत् ओवरलोडिंग् इत्यस्य उपयोगेन अस्मान् फंक्शन्स् अधिकसुलभतया उपयोक्तुं शक्यते । C भाषायां उपर्युक्तं प्रभावं प्राप्तुं वयं चत्वारि भिन्नानि फंक्शन् नामानि उपयोक्तव्यानि, तथा च C++ मध्ये overloading इत्यनेन सह सर्वाणि add functions एकीकृत्य एकस्य नाम भेदस्य आवश्यकता नास्ति तस्य उपयोगं कुर्वन् केवलं प्रत्यक्षतया तस्य उपयोगं कुर्वन्तु, यत् अतीव सुलभम् अस्ति ।

निगमन:

C++ इत्यनेन आरम्भस्य मूलभूतविषयेषु अयं लेखः अत्र समाप्तः भविष्यति, पश्चात् अन्येषां मूलभूतज्ञानानाम् व्याख्यानं निरन्तरं करिष्यामः।

यदि भवतः किमपि न्यूनता अस्ति तर्हि निजीसन्देशद्वारा वा टिप्पणीक्षेत्रे वा तानि सूचयितुं शक्नुवन्ति!

मुखपृष्ठम् : १.समुद्री डाकू बिल्ली Ou-CSDN ब्लॉग

अत्र लघुगुलः अस्ति! अग्रिमे समये मिलित्वा~(* ̄︶ ̄*)~