मैं अपने खाली समय में एक NES एमुलेटर को एक शौक के रूप में विकसित कर रहा हूं। मैं C ++ का उपयोग करता हूं क्योंकि मैं जिस भाषा का उपयोग करता हूं, वह ज्यादातर और ज्यादातर पसंद है।
लेकिन अब जब मैंने इस परियोजना में कुछ अग्रिम किया, तो मुझे एहसास हुआ कि मैं सी ++ की लगभग किसी भी विशिष्ट सुविधाओं का उपयोग नहीं कर रहा हूं, और इसे सादे सी में भी कर सकता था और वही परिणाम प्राप्त कर सकता था। मैं टेम्पलेट, ऑपरेटर ओवरलोडिंग, बहुरूपता, वंशानुक्रम का उपयोग नहीं करता हूं। तो आप क्या कहेंगे? क्या मुझे C ++ में रहना चाहिए या C में इसे फिर से लिखना चाहिए?
मैं इसे प्रदर्शन में हासिल करने के लिए नहीं करूंगा, यह एक साइड इफेक्ट के रूप में आ सकता है, लेकिन विचार यह है कि अगर मुझे इसकी आवश्यकता नहीं है तो मुझे C ++ का उपयोग क्यों करना चाहिए?
C ++ की एकमात्र विशेषता जो मैं उपयोग कर रहा हूं वह डेटा और विधियों को इनकैप्सुलेट करने के लिए कक्षाएं हैं, लेकिन यह भी संरचना और कार्यों के साथ किया जा सकता है, मैं नया और डिलीट का उपयोग कर रहा हूं, लेकिन साथ ही साथ मॉलोक और फ्री का उपयोग कर सकता हूं, और मैं कर रहा हूं केवल कॉलबैक के लिए वंशानुक्रम का उपयोग करना, जो कार्यों के लिए संकेत के साथ प्राप्त किया जा सकता है।
याद रखें, यह एक शौक परियोजना है, मेरे पास कोई समय सीमा नहीं है, इसलिए ओवरहेड समय और काम की आवश्यकता होती है जिसे फिर से लिखना एक समस्या नहीं है, मजेदार भी हो सकता है। तो, सवाल C या C ++ है?
I use C++ because is the language I use mostly, know mostly and like mostly.
और आपके प्रश्न का उत्तर है। जब आपकी समस्या वर्तमान भाषा हल नहीं कर सकती है तो आपको केवल भाषाओं को मध्य परियोजना में बदलना चाहिए। I don't use templates, operator overloading, polymorphism, inheritance.
यह सी पर स्विच करने की तुलना में अवधारणाओं को सीखने और उपयोग करने के लिए बहुत अधिक मूल्यवान होगा। चूंकि यह एक शौक परियोजना है, इसलिए उन कुछ चीजों का उपयोग क्यों न करें जिन्हें आपने पहले इस्तेमाल नहीं किया है? आप हमेशा C में एक और प्रोजेक्ट शुरू कर सकते हैं और भाषा सीख सकते हैं, लेकिन अपने वर्तमान प्रोजेक्ट के लिए इसे स्विच करने का कोई मतलब नहीं है।
std::shared_ptr
, std::unique_ptr
, boost::scoped_ptr
, std::vector
, std::deque
, std::map
कॉलबैक कार्यों के लिए आदि,, functors के उपयोग में देखो, और सी ++ 11 में, आप लैम्ब्डा कार्यों जैसी चीजों का उपयोग भी शुरू कर सकते हैं।