Outline of C++
নিম্নলিখিত রূপরেখাটি সি + +-এর একটি সংক্ষিপ্ত বিবরণ এবং সাময়িক নির্দেশিকা হিসাবে সরবরাহ করা হয়েছেঃ সি + + একটি স্থিতিশীলভাবে টাইপ করা, মুক্ত-ফর্ম, বহু-দৃষ্টান্ত, সংকলিত, সাধারণ-উদ্দেশ্য প্রোগ্রামিং ভাষা। এটি একটি মধ্যবর্তী-স্তরের ভাষা হিসাবে বিবেচিত হয়, কারণ এটি উচ্চ-স্তর এবং নিম্ন-স্তর উভয় ভাষার বৈশিষ্ট্যের সংমিশ্রণ নিয়ে গঠিত। এটি 1979 সালে বেল ল্যাবে সি ভাষার বর্ধন হিসাবে বার্ন স্ট্রস্ট্রপ দ্বারা বিকশিত হয়েছিল। সি + + কি ধরনের ভাষা? সি + + কে নিম্নলিখিত সমস্ত হিসাবে বর্ণনা করা যেতে পারেঃ প্রোগ্রামিং ভাষা-একটি মেশিনে, বিশেষত একটি কম্পিউটারে নির্দেশাবলী যোগাযোগ করার জন্য ডিজাইন করা কৃত্রিম ভাষা। প্রোগ্রামিং ভাষাগুলি এমন প্রোগ্রাম তৈরি করতে ব্যবহার করা যেতে পারে যা কোনও মেশিনের আচরণ নিয়ন্ত্রণ করে এবং/অথবা অ্যালগরিদমগুলি সঠিকভাবে প্রকাশ করে। সংকলিত ভাষা-প্রোগ্রামিং ভাষা সংকলকদের মাধ্যমে প্রয়োগ করা হয় (অনুবাদকরা যা সোর্স কোড থেকে মেশিন কোড তৈরি করে), এবং দোভাষীদের নয় (সোর্স কোডের ধাপে ধাপে নির্বাহক, যেখানে কোনও অনুবাদ হয় না)। সাধারণ উদ্দেশ্যের প্রোগ্রামিং ভাষা-বিভিন্ন অ্যাপ্লিকেশন ডোমেনে সফ্টওয়্যার লেখার জন্য ব্যবহৃত প্রোগ্রামিং ভাষা। মধ্যবর্তী ভাষা-কম্পিউটার প্রোগ্রামগুলির বিশ্লেষণে সহায়তা করার জন্য ডিজাইন করা একটি বিমূর্ত মেশিনের ভাষা। এই শব্দটি কম্পাইলারগুলিতে তাদের ব্যবহার থেকে এসেছে, যেখানে একটি কম্পাইলার প্রথমে একটি প্রোগ্রামের সোর্স কোডকে একটি লক্ষ্য মেশিনের জন্য অবজেক্ট বা মেশিন কোড তৈরি করার আগে একটি মধ্যবর্তী পদক্ষেপ হিসাবে কোড-উন্নতির রূপান্তরের জন্য আরও উপযুক্ত আকারে অনুবাদ করে। অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ল্যাঙ্গুয়েজ-"অবজেক্ট"-এর উপর ভিত্তি করে প্রোগ্রামিং ল্যাঙ্গুয়েজ, যা ডেটা স্ট্রাকচার যা ডেটা ধারণ করে, ক্ষেত্রের আকারে, যা প্রায়শই অ্যাট্রিবিউট হিসাবে পরিচিত; এবং কোড, পদ্ধতির আকারে, যা পদ্ধতি হিসাবে পরিচিত। একটি বস্তুর পদ্ধতি বস্তুর ডেটা ক্ষেত্রগুলি অ্যাক্সেস এবং সংশোধন করতে পারে। অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং-এ, কম্পিউটার প্রোগ্রামগুলি একে অপরের সাথে মিথস্ক্রিয়া করে এমন বস্তু থেকে তৈরি করে ডিজাইন করা হয়। স্ট্যাটিক্যালি টাইপ করা প্রোগ্রামিং ভাষা সাধারণ সি + + ধারণাগুলি নাম রেজোলিউশন আর্গুমেন্ট-নির্ভর নাম সন্ধান-ফাংশন কলকে দেওয়া আর্গুমেন্টের ধরণের উপর নির্ভর করে একটি অযোগ্য ফাংশন নাম সন্ধানের ক্ষেত্রে প্রযোজ্য। এই আচরণটি কোয়েনিগ লুকআপ নামেও পরিচিত, যা এর উদ্ভাবক অ্যান্ড্রু কোয়েনিগ (প্রোগ্রামার)-এর নামে নামকরণ করা হয়েছে। অটো-লিঙ্কিং-একটি সি বা সি + + প্রোগ্রাম তৈরি করার সময় কোন লাইব্রেরির সাথে লিঙ্ক করতে হবে তা স্বয়ংক্রিয়ভাবে নির্ধারণ করার প্রক্রিয়া। এটি লাইব্রেরির হেডার ফাইলগুলিতে #pragma মন্তব্য (lib, <নাম>) বিবৃতির মাধ্যমে সক্রিয় করা হয়। ক্লাস-ক্লাসগুলি ডেটা স্ট্রাকচারের ধরন এবং সেই ডেটা স্ট্রাকচারগুলিতে কাজ করে এমন ফাংশনগুলি সংজ্ঞায়িত করে। এই ডেটাটাইপগুলির উদাহরণগুলি অবজেক্ট হিসাবে পরিচিত এবং এতে প্রোগ্রামার দ্বারা সংজ্ঞায়িত সদস্য ভেরিয়েবল, ধ্রুবক, সদস্য ফাংশন এবং ওভারলোড অপারেটর থাকতে পারে। সি + + প্রোগ্রামিং ভাষা প্রোগ্রামারদের ক্লাস ব্যবহারের মাধ্যমে প্রোগ্রাম-নির্দিষ্ট ডেটাটাইপগুলি পৃথক করার অনুমতি দেয়। ব্যতিক্রম হেডার ফাইল ইনার ক্লাস ওয়ান ডেফিনিশন রুল অপারগ পয়েন্টার প্লেইন ওল্ড ডেটা স্ট্রাকচার রুল অফ থ্রি (সি + + প্রোগ্রামিং) রান-টাইম টাইপ ইনফরমেশন সিকোয়েন্স পয়েন্ট সিঙ্গেল কম্পাইলেশন ইউনিট স্পেশাল মেম্বার ফাংশন প্রতিস্থাপন ব্যর্থতা কোনও ত্রুটি নয় টেমপ্লেট (সি + +) টেমপ্লেট মেটাপ্রোগ্রামিং বৈশিষ্ট্য ক্লাস অনির্ধারিত আচরণ ভার্চ্যুয়াল ফাংশন কল সি এবং সি + + সি + + টুলচেইন সি + + সংকলক সি + + লাইব্রেরি সি + + স্ট্যান্ডার্ড লাইব্রেরি সি + + স্ট্যান্ডার্ড লাইব্রেরি সি + + স্ট্যান্ডার্ড লাইব্রেরি সি + + স্ট্যান্ডার্ড লাইব্রেরি সি + + + লাইব্রেরি সি + + + লাইব্রেরি সি + + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + + লাইব্রেরি সি + লাইব্রেরি সি + লাইব্রেরি সি + এর মধ্যে রয়েছে ইনপুট এবং আউটপুট, মাল্টি-থ্রেডিং, সময়, নিয়মিত অভিব্যক্তি, সাধারণ কাজের জন্য অ্যালগরিদম এবং কম সাধারণ (প্রত্যেকের জন্য সন্ধান করুন, অদলবদল করুন ইত্যাদি)। এবং তালিকা, মানচিত্র এবং হ্যাশ মানচিত্র (এবং সেটগুলির সমতুল্য) এবং ভেক্টর নামে একটি শ্রেণী যা একটি রিসাইজেবল অ্যারে। অন্যান্য অনেক ফাংশন স্ট্যান্ডার্ড লাইব্রেরি দ্বারা সরবরাহ করা হয়, তবে মূলত তৃতীয় পক্ষের লাইব্রেরি তৈরি করার জন্য তৈরি করা একটি ফর্ম। স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরি (এস. টি. এল) অন্যান্য উল্লেখযোগ্য গ্রন্থাগার অ্যাক্টিভ টেমপ্লেট লাইব্রেরি অ্যাডাপটিভ কমিউনিকেশন এনভায়রনমেন্ট অ্যালগরিদমিক কঙ্কাল অ্যাপাচি সি + + স্ট্যান্ডার্ড লাইব্রেরি আর্মাদিলো (সি + + লাইব্রেরি) আর্টেফাকটুর এশিয়া সি + + লাইব্রেরি এটিএন্ডটি এফ. এস. এম লাইব্রেরি এটিএল সার্ভার বিএএল ব্লিটজ + + বোহেম আবর্জনা সংগ্রাহক বুস্ট (সি + + লাইব্রেরি) বোরল্যান্ড গ্রাফিক্স ইন্টারফেস বোটান (প্রোগ্রামিং লাইব্রেরি) সি + + এএমপি সিজিএএল সিন্ডার (প্রোগ্রামিং লাইব্রেরি)-উন্নত ভিজ্যুয়ালাইজেশন ক্ষমতার জন্য কাঠামো। ক্ল্যানলিব কোডসিন্থেসিস এক্স. এস. ডি কোডসিন্থেসিস এক্স. এস. ডি/ই সি. পি. পি. ইউনিট ক্রিপ্টো + + সি. টি. পি. পি. ডি-বাস ডাটাবেস ম্যানেজমেন্ট লাইব্রেরি ডিংকুমওয়্যার এফি (সি + +) আইগেন (সি + + লাইব্রেরি) জি. ডি. এ. এল জি. ডি. সি. এম. জি. এন. এ. সি. জি. টি. কে. এম. এইচ. ও. ও. পি. এস 3ডি গ্রাফিক্স সিস্টেম ইন্টিগ্রেটেড পারফরম্যান্স প্রিমিটিভস (আই. পি. পি)-ইন্টেল দ্বারা উত্পাদিত মাল্টিমিডিয়া এবং ডেটা প্রসেসিং অ্যাপ্লিকেশনের জন্য ফাংশনের একটি মাল্টি-থ্রেডেড সফ্টওয়্যার লাইব্রেরি। জুস কাকাডু (সফ্টওয়্যার) কেএফআরলিব-ক্রস-প্ল্যাটফর্ম, অপ্টিমাইজড অডিও এবং ডিএসপি লাইব্রেরি। লেমন (সি + + লাইব্রেরি) লেভেলডিবি লিবার্ক লিব্লাস লিবসিগসি + + লিবক্স (গ্রাফিক্স লাইব্রেরি) লাইটএসকিউএল লাইভ555 লোকি (সি + +) ম্যাথ কার্নেল লাইব্রেরি (এমকেএল)-ইন্টেল দ্বারা উত্পাদিত বিজ্ঞান, প্রকৌশল এবং আর্থিক প্রয়োগের জন্য অনুকূলিত গণিতের রুটিনগুলির একটি লাইব্রেরি। ম্যাট্রিক্স টেমপ্লেট লাইব্রেরি মেটাকিট মাইক্রোসফ্ট ফাউন্ডেশন ক্লাস লাইব্রেরি অবজেক্ট উইন্ডোজ লাইব্রেরি অবজেক্ট-ওরিয়েন্টেড অ্যাবস্ট্রাক্ট টাইপ হায়ারার্কি ওডিবি (সি + +) ওজিআরই ওপেন অ্যাসেট ইম্পোর্ট লাইব্রেরি ওপেন ইনভেন্টর ওপেনইমেজআইও ওরাকল টেমপ্লেট লাইব্রেরি অরফিও টুলবক্স পোকো সি + + লাইব্রেরি পোডোফো পপলার (সফ্টওয়্যার) পিটিকে টুলকিট কিউটি (ফ্রেমওয়ার্ক) সাউন্ড অবজেক্ট (এসএনডিওবিজে) লাইব্রেরি স্ট্যাপল সিম্বোলিকসি + + থ্রেডিং বিল্ডিং ব্লক (টিবিবি)-সি + + টেমপ্লেট লাইব্রেরি যা মাল্টি-কোর প্রসেসরের সুবিধা গ্রহণ করে এমন সফ্টওয়্যার প্রোগ্রাম লেখার জন্য ইন্টেল কর্পোরেশন দ্বারা তৈরি করা হয়েছে। ভি. টি. ডি-এক্স. এম. এল উইন্ডোজ টেমপ্লেট লাইব্রেরি ডব্লিউ. এক্স. উইজেট এক্সক্যাস জেরসেস ওয়াই. এ. এ. এফ আরও দেখুন সি + + মাল্টি-থ্রেডিং লাইব্রেরির তালিকা সি + + মাল্টিপল প্রিসিশন গাণিতিক লাইব্রেরির তালিকা সি + + টেমপ্লেট লাইব্রেরির ইতিহাস সি + + প্রোগ্রামিং ভাষাগুলির ইতিহাস যা সি + + সি সিমুলা আদা 83 এএলজিওএল 68 সিএলইউ এমএল স্ট্যান্ডার্ডাইজেশন ইতিহাস সি + + 98-1998 সালে, সি + + স্ট্যান্ডার্ড কমিটি সি + + কে প্রমিত করে এবং আন্তর্জাতিক মান আইএসও/আইইসি 14882:1998 প্রকাশ করে (অনানুষ্ঠানিকভাবে সি + + 98 নামে পরিচিত)। সি + + 3 সি + + 11-সি + + 3 প্রতিস্থাপন করে 2011 সালের 12ই আগস্ট আইএসও দ্বারা অনুমোদিত। নামটি নির্দিষ্টকরণের প্রকাশনার বছর অনুসারে ভাষা সংস্করণগুলির নামকরণের ঐতিহ্য থেকে উদ্ভূত হয়েছে। সি + + 14-সি + + এর সাম্প্রতিকতম পুনরাবৃত্তি, আইএসও দ্বারা 18 আগস্ট 2014-এ ঘোষিত, সি + + 11 প্রতিস্থাপন করে। সি + + 17-আসন্ন সংস্করণ। নির্দিষ্টকরণটি সম্পূর্ণ বৈশিষ্ট্য, এবং পর্যালোচনার সময়কালে প্রবেশ করছে। সি + + 20 উদাহরণস্বরূপ উৎস কোড সি + + কোড সহ নিবন্ধ সি + + প্রকাশনা সি + + সম্পর্কে বই সি + + প্রোগ্রামিং ভাষা-ব্যাপকভাবে ভাষার মানক পাঠ্যপুস্তক হিসাবে বিবেচিত হয়। লিখেছেন বার্ন স্ট্রাউস্ট্রুপ। দ্য ডিজাইন অ্যান্ড ইভোলিউশন অফ সি + +-সি + +-এর জন্ম সম্পর্কে বার্ন স্ট্রস্ট্রাপের একটি বই। আধুনিক সি + + ডিজাইন-সি + + ব্যবহার করে বিভিন্ন নকশার নিদর্শন নিয়ে আন্দ্রেই আলেকজান্দ্রেস্কুর একটি বই। সি + + সি + + রিপোর্ট সম্পর্কে ম্যাগাজিন-এসআইজিএস পাবলিকেশনস গ্রুপ দ্বারা প্রকাশিত একটি দ্বি-মাসিক পেশাদার কম্পিউটার ম্যাগাজিন ছিল। সি + + ব্যক্তিত্ব আলেকজান্ডার স্টেপানোভ আন্দ্রেই আলেকজান্দ্রেস্কু অ্যান্ড্রু কোয়েনিগ বার্ন স্ট্রস্ট্রুপ-ডেনিশ কম্পিউটার বিজ্ঞানী, সি + + এর সৃষ্টি এবং বিকাশের জন্য সবচেয়ে উল্লেখযোগ্য। ডেভিড আব্রাহামস ডগলাস সি. শ্মিট হার্ব সাটার জিম কপ্লিয়েন (আ. কা. জেমস ও. কপ্লিয়েন) পিট বেকার রবার্ট সেসিল মার্টিন স্কট মেয়ার্স সি + + উপভাষাগুলি সি + + প্রমিতকরণ কমিটি উপভাষাগুলিকে নিরুৎসাহিত করে (এই অগ্রাধিকারের সাথে যে স্ট্যান্ডার্ড লাইব্রেরিতে নতুন কার্যকারিতার মাধ্যমে সমস্যাটি সমাধান করা হয়, যেমন সমান্তরাল প্রোগ্রামিংয়ের জন্য মাল্টি-থ্রেডিংয়ের মতো আইটেমগুলির সাথে করা হয়), তবে কিছু উপভাষা তৈরি করা হয়েছে, বিভিন্ন কারণে (এমন বৈশিষ্ট্যগুলি অপসারণ করতে যা বাস্তবায়ন করা কঠিন, একটি প্রোগ্রামিং প্রবণতার প্রতিক্রিয়া ইত্যাদি)। ): প্রোগ্রামিং ভাষার উপভাষা-(তুলনামূলকভাবে ছোট) বৈচিত্র্য বা ভাষার সম্প্রসারণ যা তার অন্তর্নিহিত প্রকৃতি পরিবর্তন করে না। চার্ম + +-সি + +-এর উপর ভিত্তি করে সমান্তরাল অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা এবং ইলিনয় বিশ্ববিদ্যালয়ের সমান্তরাল প্রোগ্রামিং ল্যাবরেটরিতে বিকশিত। চার্ম + + একটি সমান্তরাল প্রোগ্রামের উচ্চ-স্তরের বিমূর্ততা প্রদানের মাধ্যমে প্রোগ্রামার উৎপাদনশীলতা বাড়ানোর লক্ষ্যে ডিজাইন করা হয়েছে এবং একই সাথে বিভিন্ন অন্তর্নিহিত হার্ডওয়্যার প্ল্যাটফর্মে ভাল পারফরম্যান্স প্রদান করে। এমবেডেড সি + +-এমবেডেড সিস্টেমের জন্য সি + + এর উপভাষা, "এমবেডেড সিস্টেম প্রোগ্রামারদের সি + + এর একটি উপসেট সরবরাহ করার জন্য নির্মিত যা গড় সি প্রোগ্রামারের পক্ষে বোঝা এবং ব্যবহার করা সহজ"। এমবেডেড সিস্টেম-একটি সুবিধা, মেশিন বা ডিভাইসের জন্য নির্দিষ্ট নিয়ন্ত্রণ ফাংশনের জন্য ডিজাইন করা কম্পিউটার সিস্টেম যেখানে এটি পণ্যের একটি সমন্বিত অংশ হিসাবে এম্বেড করা হয়। এমবেডেড সিস্টেমগুলি আজ সাধারণ ব্যবহারে অনেক ডিভাইস নিয়ন্ত্রণ করে। আর + +-1990-এর দশকে সি + +-এর উপর ভিত্তি করে বেল ল্যাবস দ্বারা বিকশিত নিয়ম-ভিত্তিক প্রোগ্রামিং ভাষা। সি + + সমান্তরাল প্রোগ্রামিং সিস্টেম-সি + + কম্পাইলার এবং সমান্তরাল রানটাইম কোডপ্লে দ্বারা ডিজাইন এবং প্রকাশ করা হয়েছে যার লক্ষ্য কোডের সমান্তরালকরণকে সহজতর করা যাতে এটি মাল্টি-প্রসেসর বা মাল্টি-কোর সিস্টেমে দক্ষতার সাথে চলতে পারে। সি + + ভাষা এক্সটেনশন অ্যাস্পেক্টসি + +-সি এবং সি + + ভাষার দিক-ভিত্তিক এক্সটেনশন। সি + +/সিএলআই-মাইক্রোসফ্টের ভাষা নির্দিষ্টকরণের উদ্দেশ্য সি + + এর জন্য পরিচালিত এক্সটেনশনগুলিকে প্রতিস্থাপন করা। এটি একটি সম্পূর্ণ সংশোধন যার লক্ষ্য হল পুরনো পরিচালিত সি + + বাক্যবিন্যাসকে সহজতর করা (যা এখন অবচিত)। সি + +/সি. এল. আই-কে ই. সি. এম. এ-372 হিসাবে মানসম্মত করা হয়েছে। এটি বর্তমানে শুধুমাত্র ভিজ্যুয়াল স্টুডিও 2005,2008,2010,2012,2013 এবং 2015 (এক্সপ্রেস সংস্করণেও অন্তর্ভুক্ত) পাওয়া যায়। কমন ল্যাঙ্গুয়েজ ইনফ্রাস্ট্রাকচার-মাইক্রোসফ্ট দ্বারা বিকশিত এবং আইএসও এবং ইসিএমএ দ্বারা প্রমিত উন্মুক্ত নির্দিষ্টকরণ যা এক্সিকিউটেবল কোড এবং রানটাইম পরিবেশ বর্ণনা করে যা মাইক্রোসফ্ট. নেট ফ্রেমওয়ার্কের মূল এবং মুক্ত এবং ওপেন সোর্স বাস্তবায়ন মোনো এবং Portable.NET গঠন করে। সি + +/সিএক্স-মাইক্রোসফ্ট থেকে সি + + সংকলকদের জন্য ভাষা সম্প্রসারণ যা সি + + প্রোগ্রামারদের নতুন উইন্ডোজ রানটাইম প্ল্যাটফর্ম বা উইনআরটি-র জন্য প্রোগ্রাম লিখতে সক্ষম করে। এটি সিনট্যাক্স এবং লাইব্রেরি বিমূর্ততার একটি সেট নিয়ে আসে যা কম-ভিত্তিক উইনআরটি প্রোগ্রামিং মডেলের সাথে এমনভাবে ইন্টারফেস করে যা স্থানীয় সি + +-প্রোগ্রামারদের জন্য স্বাভাবিক। সিল্ক প্লাস-সি এবং সি + + ভাষার মাল্টিথ্রেডেড সমান্তরাল কম্পিউটিং এক্সটেনশন। সিইউডিএ সি/সি + +-এনভিডিয়া গ্রাফিক্স কার্ড ব্যবহার করে সমান্তরাল কম্পিউটিংয়ের জন্য সংকলক এবং এক্সটেনশন। সি + + এর জন্য পরিচালিত এক্সটেনশন-সি + + থেকে বিচ্যুতির মাইক্রোসফ্ট সেট, ব্যাকরণগত এবং বাক্য গঠনমূলক এক্সটেনশন, কীওয়ার্ড এবং বৈশিষ্ট্য সহ, সি + + বাক্য গঠন এবং ভাষাকে. নেট ফ্রেমওয়ার্কে আনার জন্য। এই এক্সটেনশনগুলি সি + + কোডকে পরিচালিত কোডের আকারে কমন ল্যাঙ্গুয়েজ রানটাইম (সিএলআর)-কে লক্ষ্য করার পাশাপাশি নেটিভ কোডের সাথে আন্তঃক্রিয়া চালিয়ে যাওয়ার অনুমতি দেয়। সি + +/সি. এল. আই দ্বারা নিয়ন্ত্রিত। আরও দেখুন কম্পিউটার প্রোগ্রামিংয়ের রূপরেখা সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ের রূপরেখা রেফারেন্স বাহ্যিক লিঙ্ক সি + + সি + +