2012-02-10 10 views
5

संभव डुप्लिकेट:
The Definitive C++ Book Guide and Listसी ++ में ऑब्जेक्ट ओरिएंट प्रोग्रामिंग कैसे शुरू करें?

असल में मैं सी से कर रहा हूँ, एम्बेडेड सी क्षेत्र। इस क्षेत्र में 5 साल के लिए काम करने के बाद, मैं सी ++ शुरू करना चाहता हूं। अब, मैंने सी ++ सीखना शुरू कर दिया है। लेकिन वर्ग अवधारणा मेरे सिर पर क्लिक नहीं कर रही है। कृपया मुझे बताएं कि मुझे क्लास अवधारणा या कुछ अच्छी और सरल वेबसाइट कैसे शुरू करनी चाहिए जहां मैं आसानी से सी ++ शुरू कर सकता हूं। और कृपया मुझे कुछ अच्छी सी ++ समस्याओं का सुझाव दें (वेबसाइटें जहां मुझे कुछ सी ++ अभ्यास मिल सकते हैं)।

उत्तर

1

सी ++ सी मूल रूप से, इस पुस्तक आप C++ को समझने में मदद कर सकते हैं:

+0

शुरुआत के लिए ?? – Nikko

+0

"असल में मैं सी, एंबेडेड सी फ़ील्ड से हूं। इस क्षेत्र में 5 साल के लिए काम करने के बाद, मैं सी ++ शुरू करना चाहता हूं।" – Proteas

2

"सी ++ ऑब्जेक्ट मॉडल के अंदर" आप सी ++ सीखना चाहते हैं, Stroustrups "C++ भाषा" एक बहुत ही अच्छा प्रारंभिक बिंदु imo है । व्यक्तिगत रूप से मैंने स्कॉट मेयर्स "प्रभावी सी ++" और "अधिक प्रभावी सी ++" से भी बहुत कुछ सीखा है

मुझे लगता है कि, आपकी एम्बेडेड पृष्ठभूमि पर विचार करने के लिए, आपको न केवल "भाषा सीखना" चाहिए बल्कि आपकी समझ पर भी काम करना होगा ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का। मुझे लगता है कि इस क्षेत्र में मूल पुस्तकों में से एक है ग्रेडी बूच का "ऑब्जेक्ट ओरिएंटेड एनालिसिस एंड डिज़ाइन" और "गैंग ऑफ फोर": गामा/हेल्म/जॉनसन/Vlissides "डिजाइन पैटर्न" (हालांकि दोनों पुस्तकें जावा पृष्ठभूमि के साथ लिखी गई हैं)

4

Definitive C++ Book Guide पर एक नज़र डालें। चूंकि आपके पास सी पृष्ठभूमि है, इसलिए मैं कोएनिग और म्यू द्वारा "त्वरित सी ++" की अनुशंसा करता हूं, क्योंकि यह शुरुआत से आधुनिक सी ++ विचारधाराओं में कोड दिखाता है। इससे आपको सी और सी ++ के बीच अंतरों पर ध्यान केंद्रित करने में मदद मिलेगी और आपको दिखाएगा कि आपकी सी आदतों के कौन से हिस्से आपको अव्यवस्थित करना होगा।

0

"क्लास" की अवधारणा को आसानी से एक सी struct युक्त डेटा के सदस्यों और एक सूचक एक struct युक्त समारोह संकेत करने के लिए (V-टेबल), जहां सभी कार्य एक "छिपा" पैरामीटर Class* this के लिए सोच मॉडलिंग की जा सकती है।

यह कहा गया है कि, यदि आप पहले से ही संरचना, सूचक और फ़ंक्शन पॉइंटर्स से परिचित हैं, तो कक्षाएं "मिस्टरियस" नहीं हैं।

अन्य सभी "उपयोग की कला" है और यह स्वयं कक्षा अवधारणा से संबंधित नहीं है बल्कि यह एक प्रभावी रखरखाव कोड रखने के लिए कैसे व्यवस्थित किया जा सकता है।

इस बिंदु आप

  • एक सी जैसे रास्ता तैयार किया गया कार्यक्रम कोड करने के लिए अपने आप को कोशिश कर सकते हैं पर (जटिल ध्यान देने योग्य बात है, सिर्फ सुराग पाने के लिए) या
  • सी स्वयं के बारे में भूल जाते हैं, और कोशिश समझ कैसे अवधारणा इस्तेमाल किया जाना चाहिए (बल्कि फिर तकनीकी रूप से यह क्या है)।

अंतिम बिंदु के लिए कोएनिग और मू "त्वरित सी ++" पुस्तक एक अच्छा स्टार्टर हो सकता है: यह सी पर विचार नहीं करता है, लेकिन कैसे सी ++ और यह पुस्तकालय इस्तेमाल किया जाना चाहिए, और गहरे और गहरे जा रहा -After विस्तार से- दिखाएं कि ये अवधारणाएं कहां से आती हैं।

+1

कक्षा के अधिकांश * दिलचस्प * उपयोग वर्चुअल फ़ंक्शंस के साथ नहीं हैं, लेकिन एक्सेस कंट्रोल (निजी/सार्वजनिक), ऑपरेटरों और कन्स्ट्रक्टर/विनाशकों से संबंधित हैं। दूसरे शब्दों में, सी स्ट्रक्चर – jalf

+0

@ आधा: मैं सहमत हूं, लेकिन * जब तक आप जमीन छोड़ते हैं तब तक आप उड़ नहीं सकते। ओपी ने कक्षा के बारे में कुछ पूछा है, आपकी टिप्पणी इस बारे में है कि यह क्या है। मैं "जमीन" की अवधारणा के बारे में बात कर रहा हूं और क्रिया "अर्थ" के अर्थ का। ओपी समझने के बाद, आप क्रिया "फ्लाई" और "फ्लाइट कंट्रोल सिस्टम" के बारे में बोलना शुरू नहीं कर सकते। किसी ऐसे व्यक्ति को "फ्लाइट कंट्रोल सिस्टम" के बारे में बोलना जो ' हवाई जहाज के अस्तित्व के बारे में पता नहीं है। मैं समझता हूं कि यह सब एकजुट हो सकता है, लेकिन उम्मीदवारों के लिए dowvoting Asons पूर्वाग्रह है.- –

+0

तो आप उड़ान भरने की क्षमता के मामले में एक विमान का वर्णन नहीं करेंगे? मुझे लगता है कि कुछ समझना * उद्देश्य * समझने में बहुत जरूरी है। हम एक विमान के बारे में "एक चीज जो उड़ सकते हैं और यात्रियों को ले जा सकते हैं" के रूप में बात कर सकते हैं, या वाउल्क ने इसे "बहुत सी सीटों के साथ एक oversized टाइटेनियम सिगार और धातु के दो फ्लैट बिट्स चिपकाने" के रूप में वर्णित किया है। यदि आप कक्षाओं को समझना चाहते हैं, तो आपको इसके बारे में सोचना होगा कि उनके लिए क्या उपयोग किया जाता है। एक वर्ग आपको एक नया डेटाटाइप परिभाषित करने की अनुमति देता है, और यह आपको उस डेटाटाइप पर व्यवहार लागू करने की अनुमति देता है। ऐसा करने में आवश्यक ctors/dtorsare आवश्यक है। वर्चुअल फ़ंक्शन नहीं हैं। – jalf

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