সি++
সি++ (উচ্চারণ: সি প্লাস প্লাস) একটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা। ১৯৮০ সালে বিয়ারনে স্ট্রোভস্ট্রুপ (Bjarne Stroustrup) যুক্তরাষ্ট্রের এটিএন্ডটি বেল ল্যাবরেটরিতে (AT&T Bell Laboratory) এটি ডেভেলপ করেন। মূলত সিমুলা৬৭ এবং সি প্রোগ্রামিং ভাষার সুবিধাজনক বৈশিষ্ট্যগুলোর সমন্বয় সাধন করে সি++ তৈরি হয়।
![]() | |
প্যারাডাইম | মাল্টি-প্যারাডাইম:[1] প্রসিডিউরাল, ফাংশনাল, অবজেক্ট ওরিয়েন্টেড, মৌলিক |
---|---|
নকশাকার | বিয়ারনে স্ট্রোভস্ট্রুপ |
বিকাশকারী |
|
প্রথম প্রদর্শিত | ১৯৮৩ |
স্থিতিশীল সংস্করণ | ISO/IEC 14882:2011
/ ২০১১ |
ধরণের শৃঙ্খলা | Static, unsafe, nominative |
ওএস | ক্রস-প্ল্যাটফর্ম (বহু প্ল্যাটফর্ম) |
ফাইলনেম এক্সটেনশান | .h .hh .hpp .hxx .h++ .cc .cpp .cxx .c++ |
ওয়েবসাইট | News, status & discussion about Standard C++ |
মুখ্য বাস্তবায়নসমূহ | |
ক্ল্যাং, জিসিসি, মাইক্রোসফট ভিজুয়্যাল সি++, বোরল্যান্ড সি++ টেমপ্লেট:Nowraplinks | |
উপভাষাসমূহ | |
টেমপ্লেট:Nowraplinks | |
যার দ্বারা প্রভাবিত | |
C, Simula, Ada 83, ALGOL 68, CLU, ML[1] | |
যাকে প্রভাবিত করেছে | |
Perl, LPC, Lua, Pike, Ada 95, Java, PHP, D, C99, C#,[2] Falcon, Seed7 | |
|
এটি একটি মধ্যম শ্রেণীর প্রোগ্রামিং ভাষা যাতে উচ্চ শ্রেণী এবং নিম্ন শ্রেণীর ভাষাগুলোর সুবিধা সংযুক্ত আছে। এটি সর্বকালের অন্যতম জনপ্রিয় প্রোগ্রামিং ভাষা এবং সফটওয়্যার শিল্পে এটি বহুল ব্যবহৃত হয়। যেমন- সিস্টেম সফটয়্যার, অ্যাপ্লিকেশন সফটওয়্যার, ডিভাইস ড্রাইভার, এম্বেডেড সফটওয়্যার, উচ্চ মানের সার্ভার ও ক্লায়েন্ট অ্যাপ্লিকেশন, বিনোদন সফটওয়্যার যেমন- ভিডিও গেম ইত্যাদি ক্ষেত্রে সি++ ব্যবহৃত হচ্ছে। সি++ এর বিভিন্ন মুক্ত এবং মালিকানাধীন কম্পাইলার আছে যা বিভিন্ন দল যেমন- জিএনইউ প্রকল্প, মাইক্রোসফট, ইন্টেল এবং বোরল্যান্ড সরবরাহ করে। সি++ পরবর্তী সময়ে বিভিন্ন প্রোগ্রামিং ভাষাকে প্রভাবিত করেছে যার মধ্যে সর্বাপেক্ষা উল্লেখযোগ্য হচ্ছে জাভা।
সি এর সাথে এখানে যা সংযুক্ত করা হয়েছে তার মধ্যে উল্লেখযোগ্য কিছু হল- প্রথমে শ্রেণী (classes), পরবর্তীতে ভার্চুয়াল ফাংশন, অপারেটর ওভারলোডিং, মাল্টিপল ইনহেরিটেন্স, টেমপ্লেটস, ব্যতিক্রম গ্রহণ করার ক্ষমতা (exception handling), পলিমরফিজম ইত্যাদি।
ইতিহাস

বিয়ারনে স্ট্রোভস্ট্রুপ (Bjarne Stroustrup) ১৯৭৯ সালে 'সি' নিয়ে গবেষণা শুরু করেন। পি.এইচ.ডি ডিগ্রী অর্জনের জন্য গবেষণা করতে গিয়ে তিনি নতুন প্রোগ্রামিং ভাষা তৈরি করার কথা ভাবেন। স্ট্রোভস্ট্রুপ খেয়াল করেন যে, বড় পরিসরের সফটওয়্যার উন্নয়নে সিমুলা প্রোগ্রামিং ভাষা বেশ কার্যকরী। কিন্তু ভাষাটি অনুশীলনের ক্ষেত্রে বেশ ধীর গতির, আবার বিসিপিএল বেশ দ্রুত কিন্তু বড় পরিসরের সফটওয়্যার উন্নয়নের জন্য তেমন শক্তিশালী নয়। বিয়ারনে স্ট্রোভস্ট্রুপ যখন এটিএন্ডটি বেল ল্যাবরেটরিতে এ কাজ শুরু করেন তখন ইউনিক্স কার্নেল নিয়ে গবেষণা করতে গিয়ে বেশ সমস্যার সম্মুখীন হন। তিনি 'সি' প্রোগ্রামিং ভাষায় সিমুলা এর সুবিধা গুলো অন্তর্ভুক্ত করার কাজে নিয়োজিত হন। এ কাজে 'সি' প্রোগ্রামিং ভাষাকে নির্বাচন করা হয় কারণ এটি সহজ, দ্রুততর, সহজে বহনযোগ্য এবং এর ব্যবহার ব্যাপক। সি এবং সিমুলা ছাড়াও তিনি আরো কিছু প্রোগ্রামিং ভাষা নিয়ে গবেষনা করেন যেমন: আলগোল ৬৮, অ্যাডা, সিএলইউ এবং এমএল।
নামকরণ:
সি++ নামটি এসেছে সি নামক প্রোগ্রামিং ভাষা থেকে। সি ভাষাতে পর পর দুটি যোগ চিহ্ন ব্যবহার করার অর্থ হলো কোন কিছুর মান এক বাড়ানো। অনেকটা সেই অর্থেই সি প্রোগ্রামিং-এর এক ধাপ উপরের একটি প্রোগ্রামিং ভাষা হিসেবে সি++ নামকরণটি এসেছে। তবে সি এবং সি++ এর প্রোগ্রাম কোডে অনেকটা পার্থক্য বিদ্যমান।
ভাষা
#include <iostream> // Header File where C++ basic input output files are written
using namespace std; // standard namespace
int main() { //main function
cout<<"Hello Fuad"<<endl; //endl ends the line
return 0;
}
আউটপুট : Hello Fuad
অপারেটর এবং অপারেটর ওভারলোডিং
অপারেটর | প্রতীক |
---|---|
স্কোপ রেজুলেশন অপারেটর | ::
|
কন্ডিশনাল অপারেটর | ?:
|
ডট অপারেটর বা মেম্বার সিলেকশন অপারেটর | .
|
পয়েন্টার মেম্বার সিলেকশন অপারেটর | .*
|
সাইজঅফ অপারেটর | sizeof
|
টাইপআইডি অপারেটর | typeid
|
সি++ এর ৩৫টির অধিক অপারেটর আছে যাদের মধ্যে অন্যতম হল বেসিক অ্যারিথমেটিক, বিট ম্যানিপুলেশন, ইন্ডিরেকশন, কম্পারিজন, লজিকাল এবং অন্যান্য অপারেটর। প্রায় সব অপারেটরকেই ইউজার ডিফাইনড টাইপ এর ওপর ভিত্তি করে ওভারলোড করা যাবে কিছু ব্যতিক্রম ছাড়া। ব্যতিক্রমগুলো পাশের টেবিলে দেওয়া আছে। মূলত অপারেটর ওভারলোডিং এসেছে যেন ইউজার ডিফাইনড ডাটা টাইপকে বিল্ট্ ইন ডাটা টাইপ এর মত ব্যবহার করা যায়। এছাড়া ওভারলোডিং উচ্চতর সি++ এরও অনেক জায়গায় ব্যবহৃত হয়। যেমন, স্মার্ট পয়েন্টার। অপারেটর ওভারলোডিং করলেও এর হিসাব করার অগ্রগণ্যতার পরিবর্তন ঘটে না, না পরিবর্তন ঘটে অপারেন্ড এর সংখ্যার। ওভারলোডেড"&&
" এবং "||
" অপারেটর তাদের সর্ট-সার্কিট মূল্যায়ন ধর্ম হারিয়ে ফেলে।
তথ্যসূত্র
- Stroustrup, Bjarne (১৯৯৭)। "1"। The C++ Programming Language (Third সংস্করণ)। আইএসবিএন 0-201-88954-4। ওসিএলসি 59193992।
- Naugler, David (২০০৭)। "C# 2.0 for C++ and Java programmer: conference workshop"। Journal of Computing Sciences in Colleges। 22 (5)।
Although C# has been strongly influenced by Java it has also been strongly influenced by C++ and is best viewed as a descendant of both C++ and Java.
অজানা প্যারামিটার|month=
উপেক্ষা করা হয়েছে (সাহায্য) - "ISO/IEC 14882:1998"। International Organization for Standardization।
- "ISO/IEC 14882:2003"। International Organization for Standardization।
- "ISO/IEC TR 19768:2007"। International Organization for Standardization।
- "ISO/IEC 14882:2011"। International Organization for Standardization।
- "ISO/IEC JTC1 SC22 WG21 N3690" (PDF)।
বহিঃসংযোগ
![]() |
উইকিবইয়ে এই বিষয়ের উপরে একটি বই রয়েছে: More C++ Idioms |
- JTC1/SC22/WG21 – The ISO/IEC C++ Standard Working Group
- n3242.pdf – Final Committee Draft of "ISO/IEC IS 14882 – Programming Languages – C++" (28 February 2011)
- A paper by Stroustrup showing the timeline of C++ evolution (1979–1991)
- Bjarne Stroustrup's C++ Style and Technique FAQ
- C++ FAQ Lite by Marshall Cline
- C++ FQA Lite – Yossi Kreinin
- Hamilton, Naomi (২৫ জুন ২০০৮)। "The A-Z of Programming Languages: C++"। Computerworld। Interview with Bjarne Stroustrup.
- Kalev, Danny (১৫ আগস্ট ২০০৮)। "The State of the Language: An Interview with Bjarne Stroustrup"। DevX। QuinStreet Inc.।
- Katdare, Kaustubh (১ ফেব্রুয়ারি ২০০৮)। "Dr. Bjarne Stroustrup – Inventor of C++"। CrazyEngineers।
- Code practices for not breaking binary compatibility between releases of C++ libraries (from KDE Techbase)
- The Standard C++ Foundation is a non-profit organization that promotes the use and understanding of standard C++. Bjarne Stroustrup is a director of the organization.