C++-কে একটি মিডল-লেভেল ল্যাঙ্গুয়েজ মনে করা হয়, কারণ এটি হাই-লেভেল এবং লো-লেভেল ল্যাঙ্গুয়েজ বৈশিষ্ট্যের সংমিশ্রণ নিয়ে গঠিত। এটি C-এর একটি সুপারসেট, এবং প্রায়শই যেকোনো বৈধ C প্রোগ্রাম একটি বৈধ C++ প্রোগ্রাম। C++ Windows, Mac OS, এবং UNIX-এর বিভিন্ন ভার্সন সহ বিভিন্ন প্ল্যাটফর্মে চলে। নিচে C++-এর কিছু বৈশিষ্ট্য দেওয়া হলো যা অন্য প্রোগ্রামিং ল্যাঙ্গুয়েজ থেকে আলাদা করে তোলে:
- মাল্টি-প্যারাডাইম ল্যাঙ্গুয়েজ − C++ প্রোসিডিউরাল, অবজেক্ট-অরিয়েন্টেড এবং জেনেরিক প্রোগ্রামিং সাপোর্ট করে। এটি এটিকে খুব ব.ceilসেটাইল করে তোলে।
- পয়েন্টার এবং রেফারেন্সের ব্যবহার − C++ পয়েন্টার এবং রেফারেন্স সাপোর্ট করে যা ইউজারকে মেমরির সাথে সরাসরি ডিল করার অনুমতি দেয় এবং প্রোগ্রামারকে পুরো কন্ট্রোল দেয়। এটি লো-লেভেল টাস্ক এবং খুব জটিল প্রজেক্টের জন্য খুব উপযুক্ত।
- স্ট্যাটিক্যালি টাইপড − একটি ল্যাঙ্গুয়েজ স্ট্যাটিক্যালি টাইপড যদি ভেরিয়েবলের টাইপ কম্পাইল টাইমে জানা যায়। কিছু ল্যাঙ্গুয়েজে এর মানে হলো প্রোগ্রামারকে প্রতিটি ভেরিয়েবলের টাইপ স্পেসিফাই করতে হয়। মূল সুবিধা হলো সব ধরনের চেকিং কম্পাইলার করতে পারে, তাই অনেক তुच্ছ বাগ খুব সিদ্দিকাল স্টেজে ধরা যায়।
- C++ আপনাকে একটি অপারেটরের জন্য একাধিক ডেফিনিশন স্পেসিফাই করার অনুমতি দেয় বিভিন্ন টাইপের (অবজেক্ট?) জন্য, যাকে অপারেটর ওভারলোডিং বলা হয়। এটি ব্যবহারকারীদের খুব জটিল টাইপগুলোকেও বিল্ট-ইন টাইপের মতো বর্তাবहार করতে দেয়।
- এক ইন্টারফেস একটি C++ ক্লাসের আচরণ বা ক্ষমতা বর্ণনা করে সেটির কোনো নির্দিষ্ট ইমপ্লিমেন্টেশনে কমিট না করে। C++ ইন্টারফেসগুলো অ্যাবস্ট্রাক্ট ক্লাস ব্যবহার করে ইমপ্লিমেন্ট করা হয় এবং এই অ্যাবস্ট্রাক্ট ক্লাসগুলো ডেটা অ্যাবস্ট্রাকশনের সাথে বিভ্রান্ত হওয়া উচিত নয় যা ইমপ্লিমেন্টেশন ডিটেইলসকে অ্যাসোসিয়েটেড ডেটা থেকে আলাদা রাখার একটি কনসেপ্ট।
- মাল্টিপল ইনহেরিটেন্স C++-এর একটি বৈশিষ্ট্য যেখানে একটি ক্লাস একাধিক ক্লাস থেকে ইনহেরিট করতে পারে। ইনহেরিট করা কনস্ট্রাক্টরগুলো একই ক্রমে কল হয় যেন ক্রমে তারা ইনহেরিট করা হয়েছে। ডেস্ট্রাক্টরগুলো কনস্ট্রাক্টরের বিপরীত ক্রমে কল হয়। মাল্টিপল ইনহেরিটেন্স অবজেক্টকে একাধিক টাইপের হওয়ার অনুমতি দেয় এবং এতে প্রোগ্রামে রিয়েল-ওয়ার্ল্ড মডেলিং খুব সহজ হয়।
- টারনারি অপারেটরকে lvalue হিসেবে ব্যবহার
autoকিওয়ার্ড যা প্রোগ্রামারের হস্তক্ষেপ ছাড়া স্বয়ংক্রিয়ভাবে টাইপ ডিডাকশন করে।
C++ ল্যাঙ্গুয়েজ দ্বারা সাপোর্টেড আরও অনেক বৈশিষ্ট্য রয়েছে। এমন বৈশিষ্ট্যগুলোর একটি এক্সহাস্টিভ তালিকা তৈরি করা সম্ভব নয়। ডক্স দেখে নিজে আরও এমন বৈশিষ্ট্য আবিষ্কার করুন!