कम्पोजिट डाटा टाइप

कंप्यूटर विज्ञान में, एक समग्र डेटा प्रकार या यौगिक डेटा प्रकार कोई भी डेटा प्रकार होता है जिसे प्रोग्रामिंग भाषा के आदिम डेटा प्रकार और अन्य मिश्रित प्रकारों का उपयोग करके एक प्रोग्राम में बनाया जा सकता है। इसे कभी-कभी संरचना या समग्र डेटा प्रकार कहा जाता है, हालाँकि बाद वाला शब्द ऐरे डेटा प्रकार, सूची (सार डेटा प्रकार), आदि को भी संदर्भित कर सकता है। एक समग्र प्रकार के निर्माण के कार्य को वस्तु संरचना के रूप में जाना जाता है। समग्र डेटा प्रकार प्रायः  स्केलर चर (कंप्यूटर विज्ञान) के विपरीत होते हैं।

C/C ++ संरचनाएं और क्लासेज
एक संरचना सी और C++ की समग्र प्रकार की धारणा है, एक डेटाटाइप जो लेबल किए गए फ़ील्ड या सदस्यों के एक निश्चित सेट को बनाता है। इसे इसलिए कहा जाता है क्योंकि उन्हें घोषित करने में उपयोग किए जाने वाले स्ट्रक्चर कीवर्ड, जो संरचना के लिए छोटा है या अधिक सटीक रूप से, उपयोगकर्ता-परिभाषित डेटा संरचना है। [उद्धरण वांछित]

C++ में, स्ट्रक्चर और क्लास के बीच एकमात्र अंतर डिफॉल्ट एक्सेस लेवल है, जो क्लास के लिए प्राइवेट और स्ट्रक्चर के लिए पब्लिक है। ध्यान दें कि C++ में क्लासेस और क्लास कीवर्ड (कंप्यूटर प्रोग्रामिंग) पूरी तरह से नए थे, सी प्रोग्रामिंग लैंग्वेज में पहले से ही कच्चे प्रकार के स्ट्रक्चर थे। सभी इरादों और उद्देश्यों के लिए, C++ स्ट्रक्चर्स सी स्ट्रक्चर्स का एक सुपरसेट बनाते हैं: लगभग सभी मान्य सी स्ट्रक्चर्स एक ही शब्दार्थ के साथ मान्य C++ स्ट्रक्चर्स हैं।

घोषणा
एक संरचना घोषणा में फ़ील्ड की एक सूची होती है, जिनमें से प्रत्येक का कोई भी प्रकार हो सकता है। किसी स्ट्रक्चर ऑब्जेक्ट के लिए आवश्यक कुल संग्रहण सभी फ़ील्ड्स की संग्रहण आवश्यकताओं के योग के साथ-साथ किसी भी आंतरिक पैडिंग का योग होता है। उदाहरण के लिए:

एक प्रकार को परिभाषित करता है, संदर्भित के रूप में स्ट्रुसी टी एसी सी काउंट। इस प्रकार का नया वेरिएबल बनाने के लिए हम लिख सकते हैं जिसमें एक पूर्णांक घटक है, जिसके द्वारा एक्सेस किया गया है, और एक फ़्लोटिंग-पॉइंट घटक, द्वारा एक्सेस किया गया  , इसके साथ ही   और   अवयव। ढांचा    सभी चार मान शामिल हैं, और सभी चार क्षेत्रों को स्वतंत्र रूप से बदला जा सकता है।

लिखने के बाद से  बार-बार कोड बोझिल हो जाता है, यह देखना असामान्य नहीं है    के लिए अधिक सुविधाजनक पर्यायवाची प्रदान करने के लिए सी  कोड में कथन. हालाँकि, कुछ प्रोग्रामिंग स्टाइल गाइड इसके खिलाफ सलाह देते हैं, यह दावा करते हुए कि यह प्रकार को अस्पष्ट कर सकता है।

उदाहरण के लिए:

C++ कोड में, टाइपपीफ | की आवश्यकता नहीं है क्योंकि प्रकार का उपयोग करके परिभाषित किया गया है   पहले से ही नियमित नाम स्थान का हिस्सा हैं, इसलिए प्रकार को या तो कहा जा सकता है   या केवल.

एक अन्य उदाहरण के रूप में, एक त्रि-आयामी वेक्टर समग्र प्रकार जो फ़्लोटिंग पॉइंट डेटा प्रकार का उपयोग करता है, इसके साथ बनाया जा सकता है:

नाम का एक चर  के साथ   समग्र प्रकार के रूप में घोषित किया जाएगा   के सदस्य   डॉट नोटेशन का उपयोग करके एक्सेस किया जाएगा। उदाहरण के लिए,   सेट करेगा   का घटक   5 के बराबर

इसी तरह, एक रंग संरचना का उपयोग करके बनाया जा सकता है:

3डी ग्राफिक्स में, आपको आमतौर पर प्रत्येक शीर्ष की स्थिति और रंग दोनों का ट्रैक रखना चाहिए। ऐसा करने का एक तरीका एक बनाना होगा  समग्र प्रकार, पहले बनाए गए का उपयोग कर   और   समग्र प्रकार:

तात्कालिकता
प्रकार का एक चर बनाएँ  पहले के समान प्रारूप का उपयोग करना: वर्टेक्स वि

सदस्य पहुंच
के घटकों को मान असाइन करें  जैसे इतना:

आदिम उपप्रकार
का प्राथमिक उपयोग  जटिल डेटाटाइप्स के निर्माण के लिए है, लेकिन कभी-कभी इसका उपयोग प्रिमिटिव संरचनात्मक प्रकार प्रणाली सबटाइपिंग बनाने के लिए किया जाता है। उदाहरण के लिए, चूंकि मानक सी आवश्यकता है कि यदि दो स्ट्रुसी टीs में एक ही प्रारंभिक फ़ील्ड हैं, तो उन फ़ील्ड को उसी तरह कोड में प्रदर्शित किया जाएगा

सही ढंग से काम करेगा।

टाइप करें हस्ताक्षर
प्रकार के हस्ताक्षर (या फ़ंक्शन प्रकार) आदिम और समग्र प्रकारों से निर्मित होते हैं, और समग्र प्रकारों का निर्माण करते समय स्वयं प्रकार के रूप में काम कर सकते हैं:

यह भी देखें

 * वस्तु रचना
 * संरचना (सी प्रोग्रामिंग भाषा)
 * अदिश (गणित)