C++ Union, Struct, Member type -


अगर मेरे पास एक वर्ग है:

  class Odp {int i; Int b; संघ {लंबे समय तक च; स्ट्रेट {WCHAR * pwszFoo; HRESULT घंटा; }; }; }  

संघ का मतलब है कि, सूचीबद्ध सभी मूल्यों में, यह केवल एक समय में उन मानों में से एक ले सकता है? इन चर तक पहुंचने के मामले में यह कैसे काम करता है? मैं सीधे कैसे एचआर तक पहुंच सकता हूं? यदि मैं hr सेट करता हूं, तो क्या होगा अगर मैं f ?

यह सी ++ मानक में एक बहुत ही कम क्षेत्र है - मूल रूप से एक यूनियन उदाहरण, मानक के अनुसार किसी भी एक समय पर ही व्यवहार किया जा सकता है जैसे कि इसमें "सक्रिय" सदस्य है - अंतिम लिखित एक । इसलिए:

<पूर्व> संघ यू {int a; चार सी; };

तब:

  यू यू; U.a = 1; Int n = u.a; U.c = 2; Char c = u.c;  

ठीक है, लेकिन:

  यू; U.a = 1; Char c = u.c;  

नहीं है हालांकि, मौजूदा कोड का विशाल संस्करण है जो कहता है कि दोनों ठीक हैं। और न तो, या किसी भी मामले में, एक "अवैध" पहुंच के लिए एक अपवाद डाला जाएगा। सी ++ भाषा असाधारण (!) संयत रूप से अपवादों का उपयोग करती है।

असल में, अगर आप स्वयं को सी ++ कोड में यूनियनों का उपयोग करते हैं, लेकिन सी पुस्तकालयों से निपटने के लिए कुछ गलत है।


Comments