2010-11-30 17 views
11

लिखने के लिए कैसे सीखें मैंने हाल ही में खुद को सी ++ का अध्ययन करने के लिए मजबूर किया और मैंने हर्बर्ट शिलल्ट द्वारा सी ++: द पूर्ण संदर्भ पुस्तक को पढ़ना समाप्त कर दिया। मुझे किताब पसंद आई और मुझे लगता है कि मुझे बड़ी तस्वीर मिल गई है। मैंने देखा कि जब मैं अन्य लोगों के साथ जांच करने की कोशिश करता हूं, तो मैंने जो सामग्री सीखी है, उसका उपयोग करके मैं कोड करता हूं, उन्हें आम तौर पर गैर-मूर्खतापूर्ण माना जाता है और इसे एसटीएल तरीके से अलग किया जाता है जो सुरक्षित और आसान होता है (ठीक है, पुस्तक नहीं है ' टी एसटीएल और बूस्ट पुस्तकालयों को कवर)।बेवकूफ सी ++ कोड

तो मैं पूछना चाहता हूं: अच्छे सी ++ प्रोग्राम के पैटर्न सीखने के लिए अच्छे स्रोत क्या हैं? मैं चीजों को करने के लिए "सी ++ रास्ता" से बुनियादी पैटर्न कहां से सीख सकता हूं और सी ++ में केवल सी पैटर्न को दोहराना नहीं चाहता हूं?

मुझे विशेष रूप से उन स्रोतों में रुचि होगी जिनमें एसटीएल और बूस्ट सामान शामिल हैं।

+3

हरबर्ट शिलल्ट की सी ++ किताबें ** ** ** सी ++ समुदाय द्वारा अत्यधिक अनुशंसित नहीं हैं ** (http://stackoverflow.com/questions/391091/should-i-not-use-a-herb-schildt-book- सीखने-से)। आप उन लोगों द्वारा [सी ++ पुस्तक पढ़ने के लिए बहुत बेहतर हैं जो वास्तव में जानते हैं कि वे किस बारे में बात कर रहे हैं] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) । –

+0

ओह लड़का ... काश मैं किताब खरीदने से पहले इसे पढ़ सकता था। : पी ठीक है, मैं अन्य किताबें पाने की कोशिश करूंगा। –

+0

क्यों एसटीएल और बूस्ट दस्तावेज़ नहीं? – Javier

उत्तर

7

आप The Definitive C++ Book Guide and List

अपने उद्देश्यों के लिए बाहर की जाँच करना चाहते हो सकता है मैं विशेष रूप से सिफारिश करेंगे:

वे विशेष रूप से क्रम में नहीं हैं, आप शायद उनके बीच कुछ पढ़ना और कोड करना चाहें।

(नोट: @ जॉन Dibling द्वारा बताया गया है बूस्ट किताब, मुझे लगता है कि एक के साथ अनुभव अपने आप को नहीं है पुराने हो चुके एक सा हो सकता है)

+3

कुल +1, लेकिन मैं बूस्ट बुक की सिफारिश नहीं कर सकता। मैंने इसे निराशाजनक रूप से पुराना पाया, और मेरी वास्तविक आवश्यकताओं पर लागू नहीं हुआ। –

+0

ठीक है, धन्यवाद, उत्तर संपादित :) :) – Palmik

+0

पहले दो। फिर उसे संदर्भ के रूप में उपयोग करने के लिए स्ट्रॉस्ट्रप की सी ++ प्रोग्रामिंग भाषा की आवश्यकता होगी। –

3

आप हरबर्ट शिल्डट किताब पूरा कर लिया है के बाद से, आप पढ़ सकते हैं बजेर्न स्ट्राउस्ट्रप (The C++ Programming Language) या ब्रूस एकल की पुस्तक (Thinking in C++ Part 1 & Part 2) द्वारा पुस्तक। ईकल की पुस्तक इंटरनेट पर स्वतंत्र रूप से उपलब्ध है और एसटीएल के बारे में भाग -2 बातचीत।

+0

+1, Eckel किताबें वास्तव में अच्छा – Javier

+0

पढ़ने और बुनियादी शिक्षा, हाँ के लिए कर रहे हैं, लेकिन वे भी एक सा दिनांकित, और ज्यादातर गैर ideomatic आधुनिक सी हैं ++। –

1

सी ++ idiomatic कोड लिखने के तरीके सीखने का सबसे अच्छा तरीका है ... सी ++ कोड लिखने के लिए और कुछ उन्नत सी ++ डेवलपर द्वारा आपके कोड की समीक्षा करने के लिए। आपको कुछ सबसे प्रसिद्ध सी ++ किताबें भी पढ़नी चाहिए (स्कॉट मेयर्स द्वारा प्रभावी सी ++ एक अच्छी शुरुआत है, आधुनिक सी ++ डिजाइन अच्छी सी ++ कोड लिखने के बारे में जानने के लिए एक बुरी किताब है लेकिन यदि आप खोजना और समझना चाहते हैं तो एक अच्छी किताब है जेनेरिक प्रोग्रामिंग की अवधारणा)।

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

1

Accelerated C++ सी ++ का परिचय है जो बहुत शुरुआत से एसटीएल का उपयोग करता है। यह एक लंबी किताब नहीं है, लेकिन यह आपकी स्थिति आईएमओ में किसी के लिए "घना" और एक बढ़िया विकल्प है। जब मैं इसे पढ़ता हूं तो सी ++ के साथ मेरा अनुभव आपके जैसा ही था।

1

मैं (भी) की सलाह देते हैं:

  • Effective C++, Effective STL स्टीव मायर्स द्वारा। वे पचाने में आसान हैं, फिर भी बहुत मूल्यवान - कभी-कभी यहां तक ​​कि रोशनी भी।
  • Code Complete (1 99 3 संस्करण सस्ती रूप से उपलब्ध है और इतना अलग नहीं है)। यह लंबा है, लेकिन यह पूरे क्षेत्र में से चलता है जिसका अर्थ है प्रोग्रामर से कैसे लूप को देखना चाहिए। (यह बेहतर होगा अगर यह छोटा था - जिस तरह से यह बहुत अधिक जमीन को कवर करता है उसे स्थान देना मुश्किल होता है)। मैं इसे प्रिय पकड़ है क्योंकि यह दो अंक उदाहरण देकर स्पष्ट करना बहुत अच्छी तरह से:
    • कोड समझौता है
    • वहाँ तथ्यों पता कर रहे हैं, (लेकिन हम अभी भी पेट लग रहा है के द्वारा प्राप्त करने के लिए प्रबंधन)
  • C++ FAQ Lite/C++ FAQ
  • मैं रॉबर्ट ग्लास द्वारा Facts and Fallacies में फेंक दूंगा - यह आपके अनुरोध को बहुत अच्छी तरह से फिट नहीं करता है, लेकिन इसे पढ़ें।

यह है कि आप अन्य लोगों के कोड से नाखुश हैं स्वाभाविक है। प्रोग्रामिंग के लिए यह सामान्य है - बिल्ली, यहां तक ​​कि पांच साल पहले मेरा अपना कोड कुल एन 00 बी द्वारा लिखा गया था। यह सी ++ के लिए अधिक स्पष्ट हो सकता है, क्योंकि यह विभिन्न शैलियों के लिए पूरा करता है, और अक्सर गिल्डलाइनों पर "स्वतंत्रता" ("आप कर सकते हैं") पर आजादी ("आप कर सकते हैं") डालते हैं।

फिर भी, मौजूदा कोड - आपके या अन्य लोगों पर उलझन - और इस पर विचार किया जा रहा है कि इसे कैसे सुधार किया जा सकता है। इसके अलावा, क्यों यह पता चलता है कि यह कभी-कभी मदद करता है।


(मुझे याद है कुछ TheDailyWTF के जहां हर कोई झंकार हैं कैसे मूर्ख और अनुचित यह है - अभी तक कहीं, मुझे भी के बीच दफन, डोमेन के अनुभव के साथ किसी को किन परिस्थितियों में यह स्पष्ट से बेहतर था आसानी से समझा गया था उपाय)।