2010-09-27 13 views
12

मैं सी ++ और उद्देश्य-सी और उद्देश्य-सी ++ के बीच का अंतर जानना चाहता हूं। किसी भी एक मुझे फर्क दे सकते हैं और हम सी वर्तमान उद्देश्य को वस्तु उन्मुखीकरण जोड़ने के लिए दो अलग-अलग दृष्टिकोण iPhone विकाससी ++, उद्देश्य-सी और उद्देश्य-सी ++ के बीच क्या अंतर है?

धन्यवाद, मदन मोहन

+0

उद्देश्य-सी ++ ?! मैंने इसके बारे में कभी नहीं सुना है। शुद्ध सी ++ 'उद्देश्य 'है, इसलिए मुझे ओब्जे-सी ++ के अस्तित्व के लिए कोई कारण नहीं दिख रहा है। कृपया मुझे सुधारें अगर मैं गलत हूं। – rhino

+10

@rhino: उद्देश्य-सी ++ बस सी ++ कोड के साथ उद्देश्य-सी (और इसके ढांचे) है। शुद्ध सी ++ उद्देश्य नहीं है, यह ऑब्जेक्ट उन्मुख है। – BoltClock

+2

@rhino: आप गलत हैं। –

उत्तर

27

सी ++ कक्षाओं और मेटाप्रोग्रामिंग को सी में जोड़ने के आधार पर बजेर्ने स्ट्राउस्ट्रुप की भाषा है जो इस तरह से संकलक में अधिकतर अतिरिक्त काम करती है, और रनटाइम पर कम से कम संभव प्रयास करती है।

उद्देश्य-सी ब्रैड कॉक्स की भाषा है जो छोटे-छोटे-शैली गतिशील संदेश-पासिंग रनटाइम लाइब्रेरी को सी पर जोड़ती है, जिसमें सिंटैक्स जोड़ों की थोड़ी मात्रा के साथ उपयोग करना आसान होता है।

उद्देश्य-सी ++, इसे स्पष्ट रूप से रखने के लिए है, जब आप उद्देश्य-सी रनटाइम और सी ++ में वाक्यविन्यास जोड़ते हैं तो आपको क्या मिलता है। इसकी सीमाएं हैं (उदाहरण के लिए आप एक सी ++ वर्ग का उद्देश्य-सी उप-वर्ग नहीं बना सकते हैं या इसके विपरीत, और उद्देश्य-सी को सी ++ नेमस्पेस पसंद नहीं है) लेकिन आपको उद्देश्य-सी ऑब्जेक्ट्स से सी ++ कक्षाओं का उपयोग करने की अनुमति देता है और इसके विपरीत ।

आप आईफोन विकास में उद्देश्य-सी ++ का उपयोग कर सकते हैं। व्यावहारिक रूप से इसका अर्थ यह है कि आप एक ऐसा एप्लिकेशन लिख सकते हैं जिसका ऑब्जेक्ट मॉडल पूरी तरह से सी ++ था, जहां कोको टच एपीआई का उपयोग करने के लिए नियंत्रक परत को उद्देश्य-सी में इंटरफेस करने की आवश्यकता होगी।

+3

मैं यह भी जोड़ूंगा कि उद्देश्य-सी सी का एक * सख्त * सुपरसेट है, जबकि सी ++ नहीं है। https://secure.wikimedia.org/wikipedia/en/wiki/Compatibility_of_C_and_C%2B%2B –

+2

उद्देश्य-सी ++ वेक्टर और मानचित्र जैसे एसटीएल टेम्पलेट्स का उपयोग करने का एक शानदार तरीका है - जिसके लिए कोई अच्छी, कम लागत नहीं है कोको में अनुरूपता। – westsider

+0

) कोई नमूना कोड दे सकता है जिसमें उद्देश्य-सी और सी ++ दोनों शामिल हैं। –

5

सी ++ और उद्देश्य सी के लिए C++ का उपयोग कर सकते/कर रहे थे सी कंपाइलर इनपुट के रूप में सी ++ को भी स्वीकार करते हैं, ताकि आप उद्देश्य-सी और सी ++ में लिखी गई अन्य फाइलों में लिखी गई कुछ फाइलों के साथ एक प्रोग्राम बना सकें। जब सी ++ इस तरह प्रयोग किया जाता है, इसे अक्सर उद्देश्य-सी ++ कहा जाता है।

+0

ठीक है, धन्यवाद। क्या हम आईफोन विकास –

+1

@Madan के लिए सी ++ का उपयोग कर सकते हैं: हाँ। आपको कम से कम थोड़ा उद्देश्य सी का उपयोग करने की आवश्यकता है जहां आपका कोड आईफोन के अंतर्निर्मित पुस्तकालयों के साथ इंटरफेस करता है, लेकिन आप सी ++ का उपयोग अन्य सभी चीज़ों के लिए कर सकते हैं। –

0

1) सी ++ सी से ली गई एक भाषा है जो अन्य सुविधाओं के साथ ऑब्जेक्ट ओरिएंटेशन (ओओ) जोड़ती है। *
2) उद्देश्य-सी सी से ली गई एक भाषा है जो अन्य सुविधाओं के साथ ऑब्जेक्ट ओरिएंटेशन (ओओ) जोड़ती है। *
3) उद्देश्य-सी ++ उद्देश्य-सी है कि आप सी ++ कक्षाओं का उपयोग कर सकते हैं।

आप आईफोन विकास के लिए सी ++ का उपयोग कर सकते हैं लेकिन आपको आईफोन पुस्तकालयों के साथ इंटरफेस करने के लिए "कुछ" उद्देश्य-सी कोड की आवश्यकता होगी।

(*) हालांकि वे दोनों एक ही समस्या को हल करने का प्रयास करते हैं, लेकिन वे इसे काफी अलग करते हैं। wikipedia पर अंतर के बारे में कुछ जानकारी है और मुझे यकीन है कि आप अधिक जानने के लिए Google का उपयोग कर सकते हैं।

-4

आप आईफोन विकास के लिए सी ++ का उपयोग कर सकते हैं लेकिन आपको आईफोन पुस्तकालयों के साथ इंटरफ़ेस के लिए "कुछ" उद्देश्य-सी कोड की आवश्यकता होगी।

यह आपको कोड और संभवतः स्मृति ब्लोट प्रदान करेगा। जैसा कि आप जानते हैं, आईओएस प्रोग्रामिंग जितना संभव हो उतना दुबला होना चाहिए: लाइब्रेरी आकार और रनटाइम मेमोरी जरूरतों को कम करें। आईओएस प्रोग्रामिंग और रनटाइम वातावरण भी उद्देश्य सी

शुद्ध ओबीजेसी आईओएस के लिए सी ++ से काफी बेहतर है। जब तक आप मौजूदा बड़े सी ++ कोड बेस का उपयोग करने की कोशिश नहीं कर रहे हैं, तो शायद स्क्रैच से फिर से लिखना बेहतर होगा। लगभग सभी सी ++ एसटीएल में आईओएस ढांचे में एनालॉग होते हैं, अक्सर उपयोग करना आसान होता है, और ऐप्पल द्वारा अत्यधिक अनुकूलित किया जाता है। उद्देश्य सी मेमोरी प्रबंधन जानें, ढांचे से परिचित हो जाएं और इसके लिए जाएं।

+3

सुधार: यदि आप दोनों भाषाओं का बहुत अच्छी तरह से उपयोग करते हैं और बाइनरी आकार और मेमोरी खपत आपकी शीर्ष प्राथमिकताओं हैं, तो सी ++ आमतौर पर द्विआधारी आकार * और * स्मृति खपत में छोटा होगा। जोड़ा बोनस: सी ++ प्रोग्राम आमतौर पर ओबीजेसी कार्यक्रमों की तुलना में तेज़ी से निष्पादित करेंगे। ओबीजेसी कार्यक्रमों के रूप में अपने मौजूदा सी ++ कार्यक्रमों को फिर से लिखना परेशान न करें। – justin

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