चलिए एक पल के लिए नैतिकता पर विचार नहीं करते हैं। आइए मानकों पर विचार करें।
तुम क्या करने का प्रस्ताव कर रहे हैं क्या गैरमानक है। मानक 9 खंड, मानक के खंड 12 देखें। "पहुंच-विनिर्देशक द्वारा अलग किए गए गैर-कानूनी सदस्यों के आवंटन का आदेश अनिर्दिष्ट है।" इसलिए, यदि आपके पास निजी सदस्यों के साथ एक वर्ग है, और कोई निजी सदस्य नहीं है, तो मानक गारंटी नहीं देता है कि सदस्य एक ही क्रम में होंगे।
इसलिए, अपने हैक काम करता है, यह केवल दुर्घटना से काम करता है, कि संकलक लेखकों इसे उस तरह से करने के लिए हुआ है। इस बात की कोई गारंटी नहीं है कि यह एक और कंपाइलर, एक ही कंपाइलर के बाद के संस्करण, या विभिन्न वर्ग लेआउट के साथ काम करेगा।
उल्लेख नहीं है कि, यदि आपके पास कक्षा को संशोधित करने का अधिकार नहीं है (कहें, एक सरल एक्सेसर फ़ंक्शन प्रदान करने के लिए), तो संभवतः कक्षा में कोई कार्यान्वयन विस्तार होने पर आपके पास ऑब्जेक्ट करने का अधिकार नहीं है। (सार्वजनिक और निजी के पीछे विचारों में से एक यह है कि स्वतंत्र रूप से बदलने योग्य से क्या वादा किया जाता है।) इसलिए, लेआउट बदल सकता है, या सदस्य का अर्थ कुछ अलग हो सकता है, या पूरी तरह हटा दिया जा सकता है।
हर्ब Sutter इस मुद्दे पर a Guru of the Week कॉलम लिखा।
ओह, जहाँ तक नैतिकता के रूप में जाना? यदि आप वास्तव में, वास्तव में ऐसा कुछ करना है, और आप इससे बाहर नहीं निकल सकते हैं, तो इसे बहुत सावधानी से दस्तावेज करें। यदि आपके कोडिंग मानकों में गैर-मानक व्यवहार को ध्वजांकित करने के लिए कुछ प्रकार की प्रक्रिया है, तो उनका उपयोग करें। यदि नहीं, तो इसे ध्यान में रखने के लिए बहुत सावधान रहें, जब कुछ गलत हो जाता है तो इसे अनदेखा नहीं किया जाएगा।
स्रोत
2009-04-07 15:20:12
क्या, विशेष रूप से, क्या आप इसे करने के द्वारा पूरा करने की कोशिश कर रहे हैं? –