डेमो एक पीओडी प्रकार सी ++ 03 में है?निजी सदस्यों के साथ सादा पुराने डेटा प्रकार?
struct Demo
{
private:
int x;
int y;
};
सी ++ 03, §9p4:
एक पॉड-struct एक समग्र वर्ग के प्रकार के गैर-पॉड-struct कोई गैर स्थिर डेटा सदस्य हैं वह यह है कि, गैर पॉड संघ (या इस तरह के सरणी) या संदर्भ, और कोई उपयोगकर्ता परिभाषित प्रति असाइनमेंट ऑपरेटर नहीं है और कोई उपयोगकर्ता परिभाषित विनाशक नहीं है।
Steve Jessop's post पढ़ने के बाद, मेरा मानना है कि डेमो एक गैर-पीओडी है क्योंकि सदस्य निजी हैं। हालांकि मानक पीओडी प्रकारों और एक्सेस संशोधक के बीच संबंध के बारे में कुछ भी नहीं कहता है।
C++ 0x डेमो में पॉड है, क्योंकि §9p9 (n3126) का कहना है:
एक पॉड struct एक वर्ग है कि दोनों एक छोटी सी वर्ग और एक मानक लेआउट वर्ग है है, और कोई नहीं है गैर-स्थैतिक डेटा सदस्यों के प्रकार गैर-पीओडी संरचना, गैर-पीओडी संघ (या इस तरह के सरणी)। इसलिए यह एक पॉड है
डेमो तुच्छ के साथ-साथ एक मानक लेआउट वर्ग है। क्या मेरी व्याख्या सही है?
एक छोटी कक्षा एक कक्षा है जिसमें एक छोटा डिफ़ॉल्ट कन्स्ट्रक्टर (12.1) होता है और यह तुलनीय रूप से कॉपी करने योग्य होता है। [9 पी 5, एन 3126]
मैं मानता हूँ चाहते हैं कि यह पॉड है। ऐसा लगता है कि परिभाषा के कुछ हिस्सों एक दूसरे के विरोधाभास कर रहे हैं कि कुल मिलाकर निजी सदस्यों के पास नहीं हो सकता है, लेकिन फिर निजी सदस्यों को कहीं और नहीं नोट किया जाता है। चाहे सदस्य सार्वजनिक या निजी हों, डिफ़ॉल्ट रूप से तुलना नहीं करेंगे और निर्माण की प्रतिलिपि नहीं करेंगे, इसलिए मैं सहमत हूं कि यह मामूली है और इसलिए पीओडी है। – JoshD