कम्पोजिट डाटा टाइप: Difference between revisions
(→घोषणा: modificatiob) |
(→सी/सी ++ संरचनाएं और कक्षाएं: modification) |
||
Line 5: | Line 5: | ||
== सी/सी ++ संरचनाएं और कक्षाएं == | == सी/सी ++ संरचनाएं और कक्षाएं == | ||
{{details|C++ classes}} | {{details|C++ classes}} | ||
एक संरचना सी और [[C++|सी ++]] की समग्र प्रकार की धारणा है, एक डेटाटाइप जो लेबल किए गए फ़ील्ड या सदस्यों के एक निश्चित सेट को बनाता है। इसे इसलिए कहा जाता है क्योंकि उन्हें घोषित करने में उपयोग किए जाने वाले स्ट्रक्चर कीवर्ड, जो संरचना के लिए छोटा है या अधिक सटीक रूप से, उपयोगकर्ता-परिभाषित डेटा संरचना है। [उद्धरण वांछित] | |||
ध्यान दें कि | सी ++ में, स्ट्रक्चर और क्लास के बीच एकमात्र अंतर डिफॉल्ट एक्सेस लेवल है, जो क्लास के लिए प्राइवेट और स्ट्रक्चर के लिए पब्लिक है। ध्यान दें कि सी ++ में क्लासेस और क्लास [[कीवर्ड (कंप्यूटर प्रोग्रामिंग)]] पूरी तरह से नए थे, सी प्रोग्रामिंग लैंग्वेज में पहले से ही कच्चे प्रकार के स्ट्रक्चर थे। सभी इरादों और उद्देश्यों के लिए, सी ++ स्ट्रक्चर्स सी स्ट्रक्चर्स का एक [[सुपरसेट]] बनाते हैं: लगभग सभी मान्य सी स्ट्रक्चर्स एक ही शब्दार्थ के साथ मान्य सी ++ स्ट्रक्चर्स हैं। | ||
=== घोषणा === | === घोषणा === | ||
ए <code> | ए <code>struसी t</code> घोषणा में फ़ील्ड की एक सूची होती है, जिनमें से प्रत्येक का कोई भी प्रकार हो सकता है। ए के लिए आवश्यक कुल भंडारण <code>struसी t</code> वस्तु सभी क्षेत्रों की भंडारण आवश्यकताओं का योग है, साथ ही कोई भी आंतरिक डेटा संरचना संरेखण # डेटा संरचना पैडिंग। | ||
उदाहरण के लिए:<वाक्यविन्यास प्रकाश लैंग = सी>संरचना खाता | उदाहरण के लिए:<वाक्यविन्यास प्रकाश लैंग = सी>संरचना खाता | ||
int | int aसी सी ount_number; | ||
चार * पहला_नाम; | चार * पहला_नाम; | ||
चार * अंतिम_नाम; | चार * अंतिम_नाम; | ||
Line 20: | Line 19: | ||
वाक्यविन्यास हाइलाइट | वाक्यविन्यास हाइलाइट | ||
एक प्रकार को परिभाषित करता है, ''संदर्भित'' के रूप में <code> | एक प्रकार को परिभाषित करता है, ''संदर्भित'' के रूप में <code>struसी t Aसी सी ount</code>. इस प्रकार का नया वेरिएबल बनाने के लिए हम लिख सकते हैं <code>struसी t Aसी सी ount myAसी सी ount;</code> | ||
जिसमें एक पूर्णांक घटक है, जिसके द्वारा एक्सेस किया गया है <code> | जिसमें एक पूर्णांक घटक है, जिसके द्वारा एक्सेस किया गया है <code>myAसी सी ount.aसी सी ount_number</code>, और एक फ़्लोटिंग-पॉइंट घटक, द्वारा एक्सेस किया गया <code>myAसी सी ount.balanसी e</code>, इसके साथ ही <code>first_name</code> और <code>last_name</code> अवयव। ढांचा <code>myAसी सी ount</code> सभी चार मान शामिल हैं, और सभी चार क्षेत्रों को स्वतंत्र रूप से बदला जा सकता है। | ||
लिखने के बाद से <code> | लिखने के बाद से <code>struसी t Aसी सी ount</code> बार-बार कोड बोझिल हो जाता है, यह देखना असामान्य नहीं है <code>typedef</code> के लिए अधिक सुविधाजनक पर्यायवाची प्रदान करने के लिए सी कोड में कथन <code>struसी t</code>. हालाँकि, कुछ{{who|date=October 2021}} प्रोग्रामिंग स्टाइल गाइड इसके खिलाफ सलाह देते हैं, यह दावा करते हुए कि यह प्रकार को अस्पष्ट कर सकता है। | ||
उदाहरण के लिए:वाक्यविन्यास प्रकाश लैंग = सी>टाइपपीफ संरचना खाता | उदाहरण के लिए:वाक्यविन्यास प्रकाश लैंग = सी>टाइपपीफ संरचना खाता | ||
int | int aसी सी ount_number; | ||
चार * पहला_नाम; | चार * पहला_नाम; | ||
चार * अंतिम_नाम; | चार * अंतिम_नाम; | ||
Line 32: | Line 31: | ||
वाक्यविन्यास हाइलाइट | वाक्यविन्यास हाइलाइट | ||
सी ++ कोड में, टाइपपीफ |<code>typedef</code>की आवश्यकता नहीं है क्योंकि प्रकार का उपयोग करके परिभाषित किया गया है <code> | सी ++ कोड में, टाइपपीफ |<code>typedef</code>की आवश्यकता नहीं है क्योंकि प्रकार का उपयोग करके परिभाषित किया गया है <code>struसी t</code> पहले से ही नियमित नाम स्थान का हिस्सा हैं, इसलिए प्रकार को या तो कहा जा सकता है <code>struसी t Aसी सी ount</code> या केवल <code>Aसी सी ount</code>. | ||
एक अन्य उदाहरण के रूप में, एक त्रि-आयामी वेक्टर समग्र प्रकार जो फ़्लोटिंग पॉइंट डेटा प्रकार का उपयोग करता है, इसके साथ बनाया जा सकता है:<वाक्यविन्यास प्रकाश लैंग = सी>संरचना वेक्टर | एक अन्य उदाहरण के रूप में, एक त्रि-आयामी वेक्टर समग्र प्रकार जो फ़्लोटिंग पॉइंट डेटा प्रकार का उपयोग करता है, इसके साथ बनाया जा सकता है:<वाक्यविन्यास प्रकाश लैंग = सी>संरचना वेक्टर | ||
Line 40: | Line 39: | ||
वाक्यविन्यास हाइलाइट | वाक्यविन्यास हाइलाइट | ||
नाम का एक चर <code> | नाम का एक चर <code>veloसी ity</code> के साथ <code>Veसी tor</code> समग्र प्रकार के रूप में घोषित किया जाएगा <code>Veसी tor veloसी ity;</code> के सदस्य <code>veloसी ity</code> डॉट नोटेशन का उपयोग करके एक्सेस किया जाएगा। उदाहरण के लिए, <code>veloसी ity.x = 5;</code> सेट करेगा <code>x</code> का घटक <code>veloसी ity</code> 5 के बराबर | ||
इसी तरह, एक रंग संरचना का उपयोग करके बनाया जा सकता है:वाक्यविन्यास प्रकाश लैंग = सी>संरचना का रंग | इसी तरह, एक रंग संरचना का उपयोग करके बनाया जा सकता है:वाक्यविन्यास प्रकाश लैंग = सी>संरचना का रंग | ||
Line 48: | Line 47: | ||
वाक्यविन्यास हाइलाइट | वाक्यविन्यास हाइलाइट | ||
3डी ग्राफिक्स में, आपको आमतौर पर प्रत्येक शीर्ष की स्थिति और रंग दोनों का ट्रैक रखना चाहिए। ऐसा करने का एक तरीका एक बनाना होगा <code>Vertex</code> समग्र प्रकार, पहले बनाए गए का उपयोग कर <code> | 3डी ग्राफिक्स में, आपको आमतौर पर प्रत्येक शीर्ष की स्थिति और रंग दोनों का ट्रैक रखना चाहिए। ऐसा करने का एक तरीका एक बनाना होगा <code>Vertex</code> समग्र प्रकार, पहले बनाए गए का उपयोग कर <code>Veसी tor</code> और <code>सी olor</code> समग्र प्रकार: | ||
<वाक्यविन्यास प्रकाश लैंग = सी>स्ट्रक्चर वर्टेक्स | <वाक्यविन्यास प्रकाश लैंग = सी>स्ट्रक्चर वर्टेक्स | ||
वेक्टर स्थिति; | वेक्टर स्थिति; | ||
Line 55: | Line 54: | ||
वाक्यविन्यास हाइलाइट | वाक्यविन्यास हाइलाइट | ||
=== तात्कालिकता === | === तात्कालिकता === | ||
प्रकार का एक चर बनाएँ <code> | प्रकार का एक चर बनाएँ <code>struसी t Vertex</code> पहले के समान प्रारूप का उपयोग करना: <code>Vertex v;</code> | ||
Line 64: | Line 63: | ||
=== आदिम उपप्रकार === | === आदिम उपप्रकार === | ||
का प्राथमिक उपयोग <code> | का प्राथमिक उपयोग <code>struसी t</code> जटिल डेटाटाइप्स के निर्माण के लिए है, लेकिन कभी-कभी इसका उपयोग प्रिमिटिव [[संरचनात्मक प्रकार प्रणाली]] [[सबटाइपिंग]] बनाने के लिए किया जाता है। उदाहरण के लिए, चूंकि [[मानक सी]]{{Citation needed|date=July 2012}} आवश्यकता है कि यदि दो struसी ts में एक ही प्रारंभिक फ़ील्ड हैं, तो उन फ़ील्ड को उसी तरह कोड में प्रदर्शित किया जाएगा | ||
<वाक्यविन्यास प्रकाश लैंग = सी>संरचना ifoo_old_stub { | <वाक्यविन्यास प्रकाश लैंग = सी>संरचना ifoo_old_stub { |
Revision as of 14:02, 11 March 2023
This article needs additional citations for verification. (May 2016) (Learn how and when to remove this template message) |
कंप्यूटर विज्ञान में, एक समग्र डेटा प्रकार या यौगिक डेटा प्रकार कोई भी डेटा प्रकार होता है जिसे प्रोग्रामिंग भाषा के आदिम डेटा प्रकारों और अन्य मिश्रित प्रकारों का उपयोग करके एक प्रोग्राम में बनाया जा सकता है। इसे कभी-कभी संरचना या समग्र डेटा प्रकार कहा जाता है,[1] हालाँकि बाद वाला शब्द ऐरे डेटा प्रकार, सूची (सार डेटा प्रकार), आदि को भी संदर्भित कर सकता है। एक समग्र प्रकार के निर्माण के कार्य को वस्तु संरचना के रूप में जाना जाता है। समग्र डेटा प्रकार अक्सर स्केलर चर (कंप्यूटर विज्ञान) के विपरीत होते हैं।
सी/सी ++ संरचनाएं और कक्षाएं
एक संरचना सी और सी ++ की समग्र प्रकार की धारणा है, एक डेटाटाइप जो लेबल किए गए फ़ील्ड या सदस्यों के एक निश्चित सेट को बनाता है। इसे इसलिए कहा जाता है क्योंकि उन्हें घोषित करने में उपयोग किए जाने वाले स्ट्रक्चर कीवर्ड, जो संरचना के लिए छोटा है या अधिक सटीक रूप से, उपयोगकर्ता-परिभाषित डेटा संरचना है। [उद्धरण वांछित]
सी ++ में, स्ट्रक्चर और क्लास के बीच एकमात्र अंतर डिफॉल्ट एक्सेस लेवल है, जो क्लास के लिए प्राइवेट और स्ट्रक्चर के लिए पब्लिक है। ध्यान दें कि सी ++ में क्लासेस और क्लास कीवर्ड (कंप्यूटर प्रोग्रामिंग) पूरी तरह से नए थे, सी प्रोग्रामिंग लैंग्वेज में पहले से ही कच्चे प्रकार के स्ट्रक्चर थे। सभी इरादों और उद्देश्यों के लिए, सी ++ स्ट्रक्चर्स सी स्ट्रक्चर्स का एक सुपरसेट बनाते हैं: लगभग सभी मान्य सी स्ट्रक्चर्स एक ही शब्दार्थ के साथ मान्य सी ++ स्ट्रक्चर्स हैं।
घोषणा
ए struसी t
घोषणा में फ़ील्ड की एक सूची होती है, जिनमें से प्रत्येक का कोई भी प्रकार हो सकता है। ए के लिए आवश्यक कुल भंडारण struसी t
वस्तु सभी क्षेत्रों की भंडारण आवश्यकताओं का योग है, साथ ही कोई भी आंतरिक डेटा संरचना संरेखण # डेटा संरचना पैडिंग।
उदाहरण के लिए:<वाक्यविन्यास प्रकाश लैंग = सी>संरचना खाता
int aसी सी ount_number; चार * पहला_नाम; चार * अंतिम_नाम; फ्लोट बैलेंस;
वाक्यविन्यास हाइलाइट
एक प्रकार को परिभाषित करता है, संदर्भित के रूप में struसी t Aसी सी ount
. इस प्रकार का नया वेरिएबल बनाने के लिए हम लिख सकते हैं struसी t Aसी सी ount myAसी सी ount;
जिसमें एक पूर्णांक घटक है, जिसके द्वारा एक्सेस किया गया है myAसी सी ount.aसी सी ount_number
, और एक फ़्लोटिंग-पॉइंट घटक, द्वारा एक्सेस किया गया myAसी सी ount.balanसी e
, इसके साथ ही first_name
और last_name
अवयव। ढांचा myAसी सी ount
सभी चार मान शामिल हैं, और सभी चार क्षेत्रों को स्वतंत्र रूप से बदला जा सकता है।
लिखने के बाद से struसी t Aसी सी ount
बार-बार कोड बोझिल हो जाता है, यह देखना असामान्य नहीं है typedef
के लिए अधिक सुविधाजनक पर्यायवाची प्रदान करने के लिए सी कोड में कथन struसी t
. हालाँकि, कुछ[who?] प्रोग्रामिंग स्टाइल गाइड इसके खिलाफ सलाह देते हैं, यह दावा करते हुए कि यह प्रकार को अस्पष्ट कर सकता है।
उदाहरण के लिए:वाक्यविन्यास प्रकाश लैंग = सी>टाइपपीफ संरचना खाता
int aसी सी ount_number; चार * पहला_नाम; चार * अंतिम_नाम; फ्लोट बैलेंस;
वाक्यविन्यास हाइलाइट
सी ++ कोड में, टाइपपीफ |typedef
की आवश्यकता नहीं है क्योंकि प्रकार का उपयोग करके परिभाषित किया गया है struसी t
पहले से ही नियमित नाम स्थान का हिस्सा हैं, इसलिए प्रकार को या तो कहा जा सकता है struसी t Aसी सी ount
या केवल Aसी सी ount
.
एक अन्य उदाहरण के रूप में, एक त्रि-आयामी वेक्टर समग्र प्रकार जो फ़्लोटिंग पॉइंट डेटा प्रकार का उपयोग करता है, इसके साथ बनाया जा सकता है:<वाक्यविन्यास प्रकाश लैंग = सी>संरचना वेक्टर
फ्लोट एक्स; फ्लोट वाई; फ्लोट जेड;
वाक्यविन्यास हाइलाइट
नाम का एक चर veloसी ity
के साथ Veसी tor
समग्र प्रकार के रूप में घोषित किया जाएगा Veसी tor veloसी ity;
के सदस्य veloसी ity
डॉट नोटेशन का उपयोग करके एक्सेस किया जाएगा। उदाहरण के लिए, veloसी ity.x = 5;
सेट करेगा x
का घटक veloसी ity
5 के बराबर
इसी तरह, एक रंग संरचना का उपयोग करके बनाया जा सकता है:वाक्यविन्यास प्रकाश लैंग = सी>संरचना का रंग
अहस्ताक्षरित int लाल; अहस्ताक्षरित int हरा; अहस्ताक्षरित int नीला;
वाक्यविन्यास हाइलाइट
3डी ग्राफिक्स में, आपको आमतौर पर प्रत्येक शीर्ष की स्थिति और रंग दोनों का ट्रैक रखना चाहिए। ऐसा करने का एक तरीका एक बनाना होगा Vertex
समग्र प्रकार, पहले बनाए गए का उपयोग कर Veसी tor
और सी olor
समग्र प्रकार:
<वाक्यविन्यास प्रकाश लैंग = सी>स्ट्रक्चर वर्टेक्स
वेक्टर स्थिति; रंग का रंग;
वाक्यविन्यास हाइलाइट
तात्कालिकता
प्रकार का एक चर बनाएँ struसी t Vertex
पहले के समान प्रारूप का उपयोग करना: Vertex v;
सदस्य पहुंच
के घटकों को मान असाइन करें v
जैसे इतना:
वाक्यविन्यास प्रकाश लैंग = सी>वी.पोजिशन.एक्स = 0.0वी.पोजिशन.वाई = 1.5वी.पोजिशन.जेड = 0.0 v डॉट रंग. लाल = 128 v डॉट रंग. हरा = 0; v डॉट रंग. नीला= 255<वाक्यविन्यास हाइलाइट>
आदिम उपप्रकार
का प्राथमिक उपयोग struसी t
जटिल डेटाटाइप्स के निर्माण के लिए है, लेकिन कभी-कभी इसका उपयोग प्रिमिटिव संरचनात्मक प्रकार प्रणाली सबटाइपिंग बनाने के लिए किया जाता है। उदाहरण के लिए, चूंकि मानक सी[citation needed] आवश्यकता है कि यदि दो struसी ts में एक ही प्रारंभिक फ़ील्ड हैं, तो उन फ़ील्ड को उसी तरह कोड में प्रदर्शित किया जाएगा
<वाक्यविन्यास प्रकाश लैंग = सी>संरचना ifoo_old_stub {
लंबा एक्स, वाई;
संरचना इफू_संस्करण_42
लंबा एक्स, वाई, जेड; नौकरानी का नाम; लंबा ए, बी, सी;
शून्य ऑपरेट_ऑन_इफू (संरचना इफू_पुराना_स्टब *); संरचना इफू_संस्करण_42 एस; . . . ऑपरेट_ऑन_इफू (& एस); वाक्यविन्यास हाइलाइट
सही ढंग से काम करेगा।
टाइप करें हस्ताक्षर
प्रकार के हस्ताक्षर (या फ़ंक्शन प्रकार) आदिम और समग्र प्रकारों से निर्मित होते हैं, और समग्र प्रकारों का निर्माण करते समय स्वयं प्रकार के रूप में काम कर सकते हैं:
<वाक्यविन्यास प्रकाश लैंग = सी> टाइपपीफ संरचना {
इंट एक्स; इंट वाई;
}बिंदु;
टाइपपीफ डबल (* मैट्रिक) (प्वाइंट पी 1, प्वाइंट पी 2);
टाइपपीफ संरचना {
बिंदु केंद्र; डबल त्रिज्या; मीट्रिक मीट्रिक;
घेरा;</वाक्यविन्यास हाइलाइट>
यह भी देखें
- वस्तु रचना
- संरचना (सी प्रोग्रामिंग भाषा)
- अदिश (गणित)
संदर्भ
- ↑ Howe, Denis. "The Free On-line Dictionary of Computing". foldoc.org. Retrieved 6 February 2023.