2011-02-13 15 views
6

शायद मैं कुछ छूट गया है, लेकिन मैं निम्नलिखित के बारे में सोच रहा हूँ:क्या सी ++ में "विशेषता" कीवर्ड है?

जब भी आप को पुन: प्राप्त कर रहे हैं या किसी संदर्भ के बिना एक भी मान सेट, :

Mozilla Developer Pages about Coding Guidelines में, मैं निम्नलिखित पढ़ आपको विशेषताओं का उपयोग करना चाहिए। दो विधियों का उपयोग न करें जब आप एक विशेषता का उपयोग कर सकते हैं। विशेषताओं का उपयोग करना तार्किक हो रही है और एक मूल्य की स्थापना जोड़ता है, और कोड की पटकथा लिखी है क्लीनर देखो।

यह उदाहरण भी कई तरीकों है:

interface nsIFoo : nsISupports { 
    long getLength(); 
    void setLength(in long length); 
    long getColor(); 
}; 

नीचे कोड सटीक एक ही सी उत्पन्न होगा ++ हस्ताक्षर है, लेकिन अधिक स्क्रिप्ट के अनुकूल है।

interface nsIFoo : nsISupports { 
    attribute long length; 
    readonly attribute long color; 
}; 

क्या मैं के बारे में सोच रहा हूँ attribute long length है। मुझे लगता है कि यह वाक्यविन्यास औपचारिक रूप से गेटर/सेटर विधियों को बनाता है।

  • लेकिन क्या मानक-सी ++ किसी भी तरह से है?
  • यह कुछ mozilla विशिष्ट सामान है?
  • यह कहां परिभाषित किया गया है?

उत्तर

12

मोज़िला बहुभाषी संदर्भों जैसे सी ++ और जावास्क्रिप्ट दोनों में उपयोग की जाने वाली वस्तुओं के लिए इंटरफेस को परिभाषित करने के लिए आईडीएल (इंटरफेस परिभाषा भाषा) नामक एक भाषा का उपयोग करता है। यह इन दो भाषाओं में कोड में संकलित करता है और इसलिए डेवलपर्स को इस परियोजना पर काम करने की अनुमति देता है ताकि वे अपनी इंटरफेस के लिए एक ही परिभाषा को जितनी चाहें उतनी भाषाओं में कर सकें। तो नहीं, यह मानक सी ++ कोड नहीं है; यह कुछ पूरी तरह से अलग है।

एक संबंधित नोट, इंटरफेस पर और केवल पढ़ने के लिए सी ++ कीवर्ड या तो नहीं हैं। :-)

3

यह

interface nsIFoo : nsISupports { 
    attribute long length; 
    readonly attribute long color; 
}; 

मैं nterface डी लेखन एल anguage (सी ++ के लिए प्रयुक्त - जावास्क्रिप्ट इंटरॉप) है। मोज़िला में एक उपकरण है जो सामान्य गेटर और सेटर विधियों के साथ सी ++ कोड उत्पन्न करता है।

सी ++ अपने आप में एक attribute कीवर्ड नहीं है।

5

यह कोडिंग दिशानिर्देश आईडीएल के लिए लागू होता है, न कि सी ++, इसलिए कोई, attribute नहीं सी का हिस्सा ++ है। दिशानिर्देश सी ++ हस्ताक्षर के बारे में ले रहे हैं कि आईडीएल उत्पन्न करता है।

संबंधित मुद्दे