সি কোডটি সাধারণত বৈধ সি ++ কোড।
সি ++ এর সাথে মুখ্য সমস্যাগুলি এটি ভুলভাবে ব্যবহার করছে ( লিনাস টরভাল্ডস এ কারণে এটি ঘৃণা করে , গ্রন্থাগারের বহনযোগ্যতার সাথে তার আরও কিছু সমস্যা ছিল এবং তাই কিনে তিনি অপারেটিং সিস্টেমের স্তরে কাজ করছেন এবং প্রতিটি এলোমেলোভাবে জিনিস চালাতে সক্ষম হতে হবে) সেখানে চিপ আউট)।
উদাহরণস্বরূপ সিস্টাইল অ্যারে [] সি ++ স্টেড :: ভেক্টর <> (বা অনুরূপ ধারক) এর উপরে ব্যবহার করার প্রায় কোনও সুবিধা নেই।
ভেক্টরগুলি টাইপসেফ এবং চেক করা বাউন্ডস হতে পারে (আপনি get () বা [] ব্যবহার করে উপাদানগুলিতে অ্যাক্সেস করতে পারেন, এমনকি যদি আপনি অ্যারে পরীক্ষিত পদ্ধতি ব্যবহার না করেন তবে আপনি পয়েন্টারের সাথে চারপাশে কার্টিংয়ের পরিবর্তে আকারটি জিজ্ঞাসা করতে পারেন)।
তবে ভেক্টরগুলি ধীর হতে পারে যদি উদাহরণস্বরূপ, আপনি কনস্ট্রাক্টরে ডিফল্ট আকারটি ঘোষণা করেন না। এছাড়াও কোনও ভেক্টরে জিনিস যুক্ত করা যদি মন্দির প্রয়োজন হয় তবে তার পুনরায় আকার পরিবর্তন করতে হবে। সি ++ 11 অনেক সুবিধা যুক্ত করে যেমন ইউনিফর্ম ইনিশিয়ালাইজেশন (আপনি এখন একই সিনট্যাক্স ব্যবহার করে ভেক্টরকে ডিক্লেয়ার এবং ইনিশিয়েল করতে পারেন) এবং এমন মুভ কনস্ট্রাক্টর রয়েছে যা আপনাকে অনুলিপি এড়াতে দেয়। এমনকি আপনি নিজের কাস্টম ইনিশিয়ালাইজারগুলিও তৈরি করতে পারেন (যদি আপনি কোনও কারণে মলোক ব্যবহার না করে অন্য কিছু করতে চান)।
অথবা অবশ্যই যদি আপনার জিনিসগুলিকে পুনরায় আকার দেওয়ার প্রয়োজন হয় তবে ভেক্টরগুলি এগুলি করা এখনও সহজ, আপনাকে ম্যালোকের সাথে গোলমাল করতে হবে না, ম্যানুয়ালি জিনিসগুলি অনুলিপি করতে হবে এবং এ জাতীয়।
সি ++ আপনাকে অবজেক্ট ওরিয়েন্টেটেড কোড দেয়। সংকলিত যখন এটি ঠিক তত কার্যকর হতে চলেছে যেহেতু কোডের সাথে কাজ করা মানুষের পক্ষে এটি কেবল একটি বিমূর্ততা। যদিও কনস্ট্রাক্টরগুলির মতো জিনিসগুলি বস্তু তৈরির গতি কমিয়ে দিতে পারে। তবে আপনাকে হয় ডিফল্ট মানগুলি নির্ধারণ করতে কনস্ট্রাক্টরের প্রয়োজন হবে অথবা অন্যথায় আপনি কনস্ট্রাক্টর ব্যবহার না করে অবজেক্টগুলি আরম্ভ করতে পারেন (এর) ছেড়ে দিয়ে।
তবে অবজেক্ট ওরিয়েন্টেশন প্রোগ্রামিং গেমগুলিকে অনেক সহজ করে তোলে । গেমগুলি প্রায়শই জিনিসগুলির সাথে ডিল করে।