C ++ एक हाइब्रिड नहीं है क्योंकि यह C- स्टाइल कोड लिखने की अनुमति देता है, लेकिन क्योंकि यह कई प्रोग्रामिंग प्रतिमानों का समर्थन करता है, जैसे कि प्रक्रियात्मक, वस्तु-उन्मुख, और सामान्य। सी ++ आपको चीजों को करने के एक तरीके में मजबूर नहीं करता है, और यही इसकी ताकत है, क्योंकि विभिन्न समस्याओं को अलग-अलग प्रतिमानों का उपयोग करके आसानी से हल किया जा सकता है।
IMHO, यह बेहतर होगा यदि भाषा / संकलक कुछ हद तक प्रोग्रामर को अधिक सुरुचिपूर्ण कोड लिखने के लिए मजबूर करें।
फिर आपको सबसे पहले परिभाषित करना होगा कि सुरुचिपूर्ण साधन क्या हैं । फिर आपको यह देखना होगा कि क्या आपकी सुरुचिपूर्ण की परिभाषा सभी समस्या डोमेन और प्लेटफार्मों के लिए उपयुक्त है, जिसके लिए C ++ का उपयोग किया जाता है। एक कोडिंग शैली जो विंडोज के लिए वर्ड प्रोसेसर लिखने के लिए सुरुचिपूर्ण है, एक एम्बेडेड सिस्टम लिखने के लिए पूरी तरह से अनुपयुक्त हो सकती है।
DSP पर चलने के लिए C ++ कोड लिखने पर विचार करें। सबसे पहले, उस डीएसपी के लिए सी ++ कंपाइलर कुछ सी ++ सुविधाओं का समर्थन नहीं कर सकता है, जैसे स्ट्रीम। दूसरा, आप सीपीयू की गति, और संभवतः मेमोरी से गंभीर रूप से विवश हैं, इसलिए कुछ सी ++ फीचर्स आपके प्रदर्शन को मार सकते हैं। उदाहरण के लिए आपको गति के लिए आभासी कार्यों से बचना पड़ सकता है। इस तरह के विचार मौलिक रूप से आपकी प्रोग्रामिंग शैली को बदल देंगे, इसकी तुलना में आप एक पीसी पर क्या उपयोग करेंगे, और C ++ इसकी अनुमति देता है।
संक्षेप में, C ++ बहुत सारी विशेषताओं के साथ एक विशाल और जटिल भाषा है। कई कारण हैं कि उन विशेषताओं में से कोई सबसेट किसी विशेष परियोजना के लिए लागू नहीं हो सकता है: गति, पोर्टेबिलिटी, कंपाइलर समर्थन, या यहां तक कि प्रोग्रामर अनुभव और परिचित। किसी भी कार्य के लिए दूसरों के विरोध के रूप में डेवलपर को कुछ विशेषताओं का उपयोग करने के लिए मजबूर करने की भाषा के लिए यह एक बुरा विचार है। जावा के बारे में सोचें, जहां भाषा यह कहती है कि प्रत्येक फ़ंक्शन को एक कक्षा का एक तरीका होना चाहिए। बहुत सारे मामले हैं जब एक विधि बनाने के लिए सिर्फ एक वर्ग बनाने के लिए अजीब और अनावश्यक है, और फिर भी आपको इसे करना होगा क्योंकि भाषा आपको मजबूर करती है।