आधुनिक C ++ प्रतिमानों का सर्वोत्तम अवलोकन? [बन्द है]


16

मैं C ++ को बड़े पैमाने पर 8 से 10 साल पहले लिखता था। मैंने तब से व्यावसायिक कारणों से C # पर स्थानांतरित किया है। हालाँकि, समय-समय पर मुझे इस तरह के बयान मिलते हैं

"यदि आप अभी भी मैन्युअल रूप से पॉइंटर संदर्भों को ट्रैक कर रहे हैं, तो आप इसे गलत कर रहे हैं"

या

"C ++ तब तक पूरी तरह से सुरक्षित है जब तक आप RAII जैसी आधुनिक अवधारणाओं का उपयोग कर रहे हैं और मैन्युअल रूप से रिकवरी सी डेवलपर की तरह मेमोरी आवंटित नहीं कर रहे हैं।"

वे दोनों एक दशक पहले मानक प्रक्रिया थे। मैंने देखा है कि हाल के दिनों में सी ++ में काफी सुधार हुआ है; C ++ 0x विशेष रूप से ऐसा लगता है कि इसमें कुछ नई क्षमताएं हैं। "आधुनिक / सी ++ पैटर्न और प्रथाओं पर पकड़ बनाने के लिए" सी / पुराने सी ++ "प्रोग्रामर के लिए सबसे अच्छा संसाधन क्या है?


3
वे एक दशक पहले मानक प्रक्रिया थे। दुर्भाग्य से, तीन दशक पहले से मानक प्रक्रिया का उपयोग करके सी ++ देवों का एक बहुत महत्वपूर्ण हिस्सा अभी भी है ।
डेडएमजी

7
मुझे एक भी संसाधन का पता नहीं है, लेकिन आधुनिक सी ++ मूल रूप से नीचे आता है: (1) हाथ से लुढ़कने वाले एल्गोरिदम के बजाय जब भी संभव हो तो एसटीएल का व्यापक उपयोग, (2) मैनुअल आवंटन / डीललोकेशन पर स्मार्ट पॉइंटर्स और एसटीएल कंटेनरों का उपयोग , (3) उच्च-क्रम के कार्यों के साथ-साथ फंक्शनलर्स / लैम्ब्डा का उपयोग करते हुए एक कार्यात्मक-एस्के प्रोग्रामिंग शैली, और (4) रनटाइम वर्चुअल फ़ंक्शंस पर टेम्पलेट आधारित स्थैतिक बहुरूपता के लिए एक प्राथमिकता जब भी संभव हो
चार्ल्स सल्विया

जवाबों:


5

यह अधिकांश अन्य चीजों की तुलना में निर्देशात्मक सामग्रियों के साथ अधिक हो सकता है, लेकिन 8-10 साल पहले यह मुझे लगता है कि जिस तरह से भाषा का इस्तेमाल किया गया था, वह आज के लिए बहुत बड़ी बात है। आज का फोकस लीवरेजिंग टेम्प्लेट्स, टाइप सेफ्टी और जेनेरिक प्रोग्रामिंग पर अधिक है, जहां पहले सभी का अधिक डर था और लोग विशेष रूप से वस्तुओं के पहलुओं के साथ सी पर विशेष रूप से ध्यान केंद्रित करते थे।

शिक्षण सामग्री भी बदल रही है। जबकि मानक C ++ शुरुआत से पहले किताब आपको प्रिंटफ, स्कैनफ आदि के माध्यम से ले जाएगी ... आप शायद ही इन्हें आधुनिक दृष्टिकोण वाली किताबों में देखते होंगे।

कुछ अच्छी किताबें लाल किताबों में से कोई हैं। असाधारण C ++, अधिक असाधारण C ++, C ++ टेम्पलेट मेटाप्रोग्रामिंग, आधुनिक C ++ डिज़ाइन, त्वरित C ​​+ ...

मुझे लगता है कि जहां मैं वर्तमान में काम कर रहा हूं, वह एक अच्छा उदाहरण हो सकता है। मैं आधुनिक तरीके से C ++ का उपयोग करके यहां आया था और ऐसा लगता है कि अधिकांश डेवलपर्स को यह भी पता नहीं है कि मैं क्या कर रहा हूं या क्यों कर रहा हूं। उदाहरण के लिए उन में ऑपरेटर () के साथ ऑब्जेक्ट बनाना ... को बाइंड की प्रत्येक घटना से नरक की टिप्पणी करना पड़ा () और अंततः उस सभी कोड को स्क्रैप करने के लिए कहा गया था। पता नहीं क्या initializers करते हैं ... यह वास्तव में मेरे लिए वास्तव में अजीब और कठिन रहा है।


5

आधुनिक सुविधाओं का त्वरित निरीक्षण करने के लिए, आपने हर्ब सटर की हालिया प्रस्तुति , "आधुनिक C ++ कोड लिखना: C ++ वर्षों में कैसे विकसित हुआ है" // बिल्ड / में सी + + सुविधाओं को देखने में गलत नहीं होगा ।

वह इस बारे में बात करता है कि C # से बेहतर भाषा क्यों है (बेशक - Microsoft अपने पतलून को नियमित रूप से बदलता है, और आज वे C ++ फैशन पहने हुए हैं, इसलिए वे इसको प्रचारित करेंगे, ठीक उसी तरह जैसे उन्होंने C # को एक दशक तक भूखा रखने का जवाब दिया। पहले) लेकिन ऐसा करने में वह सभी अच्छे बिट्स (जैसे 'स्वचालित' मेमोरी मैनेजमेंट और एसटीएल कक्षाएं) का वर्णन करता है और फिर C ++ 0x मानक से नए बिट्स के बारे में बात करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.