2010-02-26 23 views
9

नोट: समुदाय विकी के रूप में चिह्नित किया गया।बेसिक सी ++ मुहावरे/तकनीक

हाल के दिनों में, मुझे एहसास हुआ है कि मुझे सी ++ के बारे में कितना पता है।

इसके अलावा:

  • एसटीएल
  • का उपयोग कर लागू करने आरए II
  • रेफरी बार गणना स्मार्ट संकेत को लागू करने
  • मज़ा
  • के लिए अपने खुद के नीति-आधारित टेम्पलेट वर्गों
  • अधिक भार ऑपरेटरों < < लेखन

एक अच्छा सी ++ प्रोग्रामर के लिए अन्य तकनीकों को क्या पता होना चाहिए?

धन्यवाद!

+1

@anon कार्यान्वयन RAII, निश्चित रूप से। Ref-counted स्मार्ट पॉइंटर्स को कार्यान्वित करना? मुझे उम्मीद है कि पहले से मौजूद कार्यान्वयन की आवश्यकता को रोकने के लिए पर्याप्त हैं। –

उत्तर

4

मुझे लगता है कि यह इसे कवर करना चाहिए:

More C++ Idioms - Wikibooks

+0

हां, सी ++ इडियॉम में कुछ ऐसी मुहावरे शामिल हैं जिन्हें सी ++ इंजीनियर को पता होना चाहिए, जैसे कि पीआईएमपीएल, आरएआईआई, सीआरटीपी, कॉपी और स्वैप। – baotiao

4
  • OO डिजाइन
  • अपवाद सुरक्षा की गारंटी देता है के प्रकार (जो जो सबसे अधिक डिजाइन पैटर्न/मुहावरों पर आधारित होते हैं)।
  • जब उपयोग करने के लिए जो मानक कंटेनर
  • बूस्ट
+0

ऐसा लगता है कि सी ++ हाल के वर्षों में विभिन्न मामलों में ओओ डिज़ाइन से दूर जा रहा है ... – einpoklum

0

(शायद ही बहुत जरूरी-पता, लेकिन अभी भी उपयोगी) ऑपरेटर ओवरलोडिंग और टेम्पलेट metaprogramming (एक अच्छा उदाहरण के लिए Boost.Spirit देखने के साथ लेखन डोमेन विशिष्ट भाषाओं) - लेकिन यह ऐसी चीज है जो पैर को अपने आप में आसान बनाता है।

2

पहले दो अच्छे सी ++ प्रोग्रामर के लिए 'पता होना चाहिए' हैं। 'अच्छा सी ++ प्रोग्रामर' मज़ेदार ऑपरेटरों को ओवरलोड नहीं करते हैं।

1

बेसिक:

  • RTTI
  • आभासी कार्यों
  • shared_ptr आदि
  • टेम्पलेट्स
  • कला मे प्रवीणता अल इनहेरिट
  • variadic मैक्रो

भी उपयोगी:

  • गुण (यह अपने संकलक पर निर्भर करता है)
  • variadic टेम्पलेट्स
  • variadic कार्यों
  • Constexpr (संकलन समय में छँटाई/स्ट्रिंग इत्यादि की हैश की गणना ...लेकिन बाद brainfucking के लिए या विशेष मामलों में अंतिम अनुभाग)
  • lambdas

उपयोगी संबंधित है: CRTP

  • SFINAE
  • inable_if (प्रकार लक्षण)
  • Foreach मैक्रो
  • उपयोगकर्ता परिभाषित अक्षर
0

जिस तरह से मैं अपने सी ++ को बेहतर बनाने के लिए उपयोग करता था वह leveldb का स्रोत कोड पढ़ रहा है। क्योंकि leveldb एक उत्पाद स्तर कोड है। तो आप वास्तविक उत्पाद से सीपीपी मुहावरे और डिजाइन पैटर्न सीख सकते हैं। मुझे आपको कुछ उदाहरण दिखाएं

लेवलडबी पिंपल मुहावरे का उपयोग करता है, लगभग सभी की मुख्य फ़ाइल, जैसे table.h table_build.h write_batch.h। आप कोड सीधे

LevelDB इस तरह के निर्माण पद्धति के रूप में कई OO डिजाइन पैटर्न का उपयोग, से सीख सकते हैं, टेबल तालिका का निर्माण करने के table_build वर्ग है, ब्लॉक ब्लॉक

LevelDB के निर्माण के लिए भी block_build वर्ग है इटरेटर पैटर्न का उपयोग करें, इटेटरेटर हमें लेवल डीबी का उपयोग अधिक सुविधाजनक बनाता है।

तो मुझे लगता है कि लेवलडीबी में कई मुहावरे या डिज़ाइन पैटर्न होते हैं जो C++ इंजीनियर को पता होना चाहिए।

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