সুচিপত্র
- C++ কি?
- কেন C++ ব্যবহার করুন
- বৈশিষ্ট্য
- স্থানীয় পরিবেশ সেটআপ
- C++ বেসিক ইনপুট/আউটপুট
- স্ট্যান্ডার্ড আউটপুট স্ট্রীম (cout)
- স্ট্যান্ডার্ড ইনপুট স্ট্রীম (সিন)
- স্ট্যান্ডার্ড শেষ লাইন (এন্ডএল)
- C++ ভেরিয়েবল
- C++ শনাক্তকারী
- C++ ডেটা টাইপ
- C++ ধ্রুবক/লিটারেল
- C++ স্টোরেজ ক্লাস
- C++ মডিফায়ারের ধরন
- C++ এ অপারেটর
- C++ লুপ
- সিদ্ধান্ত গ্রহণের বিবৃতি
- C++ ফাংশন
- C++ সংখ্যা
- C++ অ্যারে
- C++ স্ট্রিং
- C++ পয়েন্টার
- C++ রেফারেন্স
- C++ তারিখ এবং সময়
- C++ ডেটা স্ট্রাকচার
- C++ ক্লাস এবং অবজেক্ট
- C++ উত্তরাধিকার
- C++ অ্যাক্সেস মডিফায়ার
- C++ ওভারলোডিং
- সি++ পলিমরফিজম
- C++ ডেটা অ্যাবস্ট্রাকশন
- C++ ডেটা এনক্যাপসুলেশন
- C++ বিমূর্ত ক্লাস
- C++ ব্যতিক্রম হ্যান্ডলিং
- C++ ডাইনামিক মেমরি
- C++ টেমপ্লেট
- C++ প্রিপ্রসেসর
- C++ সিগন্যাল হ্যান্ডলিং
- C++ ওয়েব প্রোগ্রামিং
- উপসংহার
- প্রস্তাবিত প্রবন্ধ
C++ কি?
C++ হল একটি ক্রস-প্ল্যাটফর্ম ভাষা যা উচ্চ-পারফরম্যান্স অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। Bjarne Stroustrup এটিকে C ভাষার এক্সটেনশন হিসেবে তৈরি করেছে। C++ প্রোগ্রামারদের সিস্টেম রিসোর্স এবং মেমরির উপর নিয়ন্ত্রণ দেয়। ভাষাটি 2011, 2014 এবং 2017 সালে C++11, C++14, এবং C++17 এ তিনটি উল্লেখযোগ্য বার আপডেট করা হয়েছিল।
কেন C++ ব্যবহার করুন
- C++ প্রোগ্রামিং এর জন্য সবচেয়ে জনপ্রিয় ভাষাগুলির মধ্যে একটি।
- C++ অপারেটিং সিস্টেম, GUI এবং এমবেডেড সিস্টেমে পাওয়া যাবে।
- এটি একটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষা যা প্রোগ্রামগুলির একটি পরিষ্কার কাঠামো দেয় এবং কোডকে পুনরায় ব্যবহার করার অনুমতি দেয়, উন্নয়ন খরচ কমিয়ে দেয়।
- এটি বহনযোগ্য এবং একাধিক প্ল্যাটফর্মে অভিযোজিত হতে পারে এমন অ্যাপ্লিকেশন বিকাশ করতে ব্যবহার করা যেতে পারে।
- যেহেতু C++ C# এর কাছাকাছি এবং জাভা , এটি প্রোগ্রামারদের জন্য C++ বা তদ্বিপরীতভাবে স্যুইচ করা সহজ করে তোলে।
বৈশিষ্ট্য
- এটি একটি হেডার প্রয়োজন.
- নামস্থান std ব্যবহার করুন; নামস্থান std ব্যবহার করার জন্য কম্পাইলারকে সতর্ক করতে।
- লাইন int main() হল প্রধান বৈশিষ্ট্য যেখানে প্রোগ্রামটি কার্যকর করা শুরু হয়।
- পরের লাইনে কাটে<< Hello World; the word Hello World is reflected on the keyboard.
- পরবর্তী লাইন 0 প্রদান করে; main() ফাংশনটি বন্ধ হয়ে যায়।
- int a;
- int _ab;
- int a30;
- int 4;
- intxy;
- int ডবল;
- সত্য প্রতিনিধিত্বকারী সত্য একটি মান.
- মিথ্যা প্রতিনিধিত্ব মিথ্যা একটি মান.
- স্বাক্ষরিত
- স্বাক্ষরবিহীন
- দীর্ঘ
- সংক্ষিপ্ত
- পাটিগণিত অপারেটর
- লজিক্যাল অপারেটর
- বিটওয়াইজ অপারেটর
- নিয়োগ অপারেটর
- রিলেশনাল অপারেটর
- বিবিধ অপারেটর
- যদি বিবৃতি
- যদি..অন্য বিবৃতি
- নেস্টেড যদি স্টেটমেন্ট
- if-else-যদি মই
- জাম্প স্টেটমেন্ট:
- বিরতি
- চালিয়ে যান
- যাও
- প্রত্যাবর্তন
- int - এক ধরনের উপাদান সংরক্ষণ করা হবে
- y – অ্যারের নাম
- 4 - অ্যারের আকার
- স্ট্রিং যে স্ট্রিং ক্লাস অবজেক্ট
- সি-স্ট্রিং
- প্রথমত, একটি পয়েন্টার ভেরিয়েবল সংজ্ঞায়িত করুন
- এখন (&) ব্যবহার করে একটি পয়েন্টারে ভেরিয়েবলের ঠিকানা বরাদ্দ করুন যা সেই ভেরিয়েবলের ঠিকানা প্রদান করে।
- (*) ব্যবহার করে ঠিকানায় সংরক্ষিত মানগুলি অ্যাক্সেস করা যা তার অপারেন্ড দ্বারা নির্দিষ্ট ঠিকানায় অবস্থিত ভেরিয়েবলের মান প্রদান করে।
- ভিতরে বহুমুখী উত্তরাধিকার, একটি প্রাপ্ত বর্গ অন্য একটি প্রাপ্ত বর্গ থেকে এবং অন্য একটি প্রাপ্ত শ্রেণীর একই বেস শ্রেণী থেকে তৈরি করা হয়। এই উত্তরাধিকার দ্বারা সমর্থিত নয়। NET ভাষা যেমন C#, F#, ইত্যাদি।
- পাবলিক
- ব্যক্তিগত
- সুরক্ষিত
- একটি ক্লাসে সর্বজনীন হিসাবে ঘোষিত সদস্যদের প্রোগ্রামের যে কোনও জায়গা থেকে অ্যাক্সেস করা যেতে পারে।
- একটি ক্লাসে ব্যক্তিগত হিসাবে ঘোষিত সদস্যদের শুধুমাত্র ক্লাসের মধ্যে থেকে অ্যাক্সেস করা যেতে পারে। ক্লাসের বাইরে কোডের কোনো অংশ থেকে তাদের অ্যাক্সেস করার অনুমতি নেই।
- সমস্ত ডেটা সদস্যদের ব্যক্তিগত করুন।
- প্রতিটি ডেটা সদস্যের জন্য এমনভাবে একটি পাবলিক সেটার এবং গেটার ফাংশন তৈরি করুন যাতে সেট ফাংশন ডেটা সদস্যের মান সেট করে এবং গেট ফাংশন ডেটা সদস্যের মান পায়।
- মেমরিতে একটি গতিশীল স্থান তৈরি করা
- একটি পয়েন্টারে এর ঠিকানা সংরক্ষণ করা হচ্ছে
- ফাংশন টেমপ্লেট
- ক্লাস টেমপ্লেট
- ম্যাক্রো
- ফাইল অন্তর্ভুক্তি
- শর্তাধীন সংকলন
- অন্যান্য নির্দেশাবলী
স্থানীয় পরিবেশ সেটআপ
আপনার কম্পিউটারে নিচের সফটওয়্যারগুলো থাকলে ভালো হতো।
এটি একটি প্রকৃত C++ কম্পাইলার, যা আপনার সোর্স কোডকে চূড়ান্ত এক্সিকিউটেবল প্রোগ্রামে কম্পাইল করতে ব্যবহার করা হবে। বেশীরভাগ C++ কম্পাইলাররা আপনার সোর্স কোডে কোন এক্সটেনশন দিবেন তা বিবেচনা করে না। সবচেয়ে বেশি ব্যবহৃত কম্পাইলার হল GNU C/C++ কম্পাইলার।
এটি টাইপ করার জন্য সফ্টওয়্যার দ্বারা ব্যবহৃত হয়। উদাহরণগুলির মধ্যে রয়েছে Windows Notepad, OS Edit, Short, Epsilon, EMACS এবং Vim বা VI কমান্ড। আপনি সম্পাদকের সাথে যে ফাইলগুলি তৈরি করেন সেগুলিকে উত্স ফাইল হিসাবে উল্লেখ করা হয় এবং C++ ফাইলগুলিকে .cpp, .cp বা .c হিসাবে উল্লেখ করা হয়৷ আপনার C++ প্রোগ্রামিং শুরু করতে, একটি পাঠ্য সম্পাদক অবশ্যই থাকতে হবে।
আসুন এখন দেখি ক্লাস, অবজেক্ট, মেথড এবং ইনস্ট্যান্স ভেরিয়েবল বলতে কি বুঝায়।
উদাহরণ
|_+_|আউটপুট
|_+_|আসুন উপরে উল্লিখিত প্রোগ্রামের বিভিন্ন অংশ দেখি -
C++ বেসিক ইনপুট/আউটপুট
C++ I/O অপারেশন স্ট্রিম ধারণা ব্যবহার করছে। স্ট্রিম হল বাইট বা ডেটার প্রবাহের ক্রম। এটি কর্মক্ষমতা দ্রুত করে তোলে।
যদি বাইট প্রধান মেমরি থেকে প্রিন্টার, ডিসপ্লে স্ক্রিন বা নেটওয়ার্ক সংযোগ ইত্যাদির মতো কোনো ডিভাইসে প্রবাহিত হয়, তাহলে এটিকে বলা হয় আউটপুট অপারেশন।
যদি কোনো ডিভাইস যেমন প্রিন্টার, ডিসপ্লে স্ক্রিন, নেটওয়ার্ক সংযোগ ইত্যাদি থেকে বাইট প্রধান মেমরিতে প্রবাহিত হয়, তাহলে একে বলে। একটি ইনপুট অপারেশন।
স্ট্যান্ডার্ড আউটপুট স্ট্রীম (cout)
দ্য খরচ এর একটি পূর্বনির্ধারিত বস্তু ওস্ট্রিম ক্লাস এটি আউটপুট ডিভাইসের সাথে সংযুক্ত থাকে, যা সাধারণত একটি ডিসপ্লে স্ক্রীন। একটি কনসোলে আউটপুট প্রদর্শন করতে স্ট্রীম সন্নিবেশ অপারেটরের সাথে যোগ দিতে cout ব্যবহার করা হয়
উদাহরণ
|_+_|আউটপুট
|_+_|স্ট্যান্ডার্ড ইনপুট স্ট্রীম (সিন)
দ্য জিন একটি পূর্বনির্ধারিত বস্তু। এটি ইনপুট ডিভাইসের সাথে সংযুক্ত থাকে, যা সাধারণত একটি কীবোর্ড। কনসোল ইনপুট পড়ার জন্য স্ট্রিম এক্সট্রাকশন অপারেটর (>>) এর সাথে যোগ দিতে সিন ব্যবহার করা হয়।
উদাহরণ
|_+_|আউটপুট
|_+_|স্ট্যান্ডার্ড শেষ লাইন (এন্ডএল)
দ্য endl ক্লাসের একটি পূর্বনির্ধারিত বস্তু। এটি নতুন লাইন অক্ষর সন্নিবেশ করতে এবং স্ট্রিম ফ্লাশ করতে ব্যবহৃত হয়।
উদাহরণ
|_+_|আউটপুট
|_+_|C++ ভেরিয়েবল
একটি পরিবর্তনশীল একটি মেমরি অবস্থানের নাম. এটি ডেটা সংরক্ষণ করতে ব্যবহৃত হয়। মান পরিবর্তন করা যেতে পারে, এবং এটি অনেক বার পুনরায় ব্যবহার করা হয়. এটি একটি চিহ্নের মাধ্যমে মেমরির অবস্থানকে সহজেই চিহ্নিত করার একটি উপায়। একটি ভেরিয়েবলের বর্ণমালা, আন্ডারস্কোর এবং সংখ্যা থাকতে পারে। একটি পরিবর্তনশীল নাম শুধুমাত্র একটি বর্ণমালা এবং আন্ডারস্কোর দিয়ে শুরু হতে পারে। এটি একটি অঙ্ক দিয়ে শুরু করতে পারে না।
পরিবর্তনশীল নামের মধ্যে কোনো সাদা স্থান অনুমোদিত নয়।
একটি পরিবর্তনশীল নাম অবশ্যই কোনো সংরক্ষিত শব্দ বা কীওয়ার্ড হওয়া উচিত নয়, যেমন, char, float, ইত্যাদি।
বৈধ পরিবর্তনশীল নাম:
অবৈধ পরিবর্তনশীল নাম:
C++ শনাক্তকারী
একটি C++ শনাক্তকারী একটি ভেরিয়েবল, ফাংশন, ক্লাস, মডিউল বা অন্য কোনো ব্যবহারকারী-সংজ্ঞায়িত আইটেম সনাক্ত করতে ব্যবহৃত হয়। এটি A থেকে Z বা a থেকে z বা একটি আন্ডারস্কোর (_) দিয়ে শুরু হয়, যার পরে শূন্য বা তার বেশি অক্ষর এবং 0 থেকে 9 হয়। এটি একটি কেস-সংবেদনশীল প্রোগ্রামিং ভাষা। সুতরাং, কর্মশক্তি এবং কর্মশক্তি C++ এ দুটি ভিন্ন শনাক্তকারী।
C++ ডেটা টাইপ
টাইপ | কীওয়ার্ড |
---|---|
চরিত্র | চর |
বুলিয়ান | bool |
ফ্লোটিং পয়েন্ট | ভাসা |
ডাবল ফ্লোটিং পয়েন্ট | দ্বিগুণ |
পূর্ণসংখ্যা | int |
মূল্যহীন | অকার্যকর |
প্রশস্ত চরিত্র | wchar_t |
টাইপ | সাধারণ বিট প্রস্থ | সাধারণ পরিসর |
চর | 1বাইট | -127 থেকে 127 বা 0 থেকে 255 |
স্বাক্ষরবিহীন চর | 1বাইট | 0 থেকে 255 |
স্বাক্ষরিত চর | 1বাইট | -127 থেকে 127 |
wchar_t | 2 বা 4 বাইট | 1 প্রশস্ত অক্ষর |
int | 4 বাইট | -2147483648 থেকে 2147483647 |
স্বাক্ষরবিহীন int | 4 বাইট | 0 থেকে 4294967295 |
স্বাক্ষরিত int | 4 বাইট | -2147483648 থেকে 2147483647 |
সংক্ষিপ্ত int | 2বাইট | -32768 থেকে 32767 |
ভাসা | 4 বাইট | |
স্বাক্ষরবিহীন সংক্ষিপ্ত int | 2বাইট | 0 থেকে 65,535 |
সংক্ষিপ্ত int স্বাক্ষরিত | 2বাইট | -32768 থেকে 32767 |
দীর্ঘ int | 8বাইট | -2,147,483,648 থেকে 2,147,483,647 |
স্বাক্ষরিত দীর্ঘ int | 8বাইট | দীর্ঘ int হিসাবে একই |
স্বাক্ষরবিহীন দীর্ঘ int | 8বাইট | 0 থেকে 4,294,967,295 |
দীর্ঘ দীর্ঘ int | 8বাইট | -(2^63) থেকে (2^63)-1 |
স্বাক্ষরবিহীন দীর্ঘ দীর্ঘ int | 8বাইট | 0 থেকে 18,446,744,073,709,551,615 |
দ্বিগুণ | 8বাইট | |
দীর্ঘ ডবল | 12বাইট |
C++ ধ্রুবক/লিটারেল
ধ্রুবকগুলি নির্দিষ্ট মানগুলিকে বোঝায় যা প্রোগ্রামটি পরিবর্তন করতে পারে এবং সেগুলিকে আক্ষরিক বলা হয়।
ধ্রুবকগুলি কাঁচা ডেটা প্রকারের যেকোনো হতে পারে এবং পূর্ণসংখ্যা, অক্ষর, ফ্লোটিং-পয়েন্ট সংখ্যা, স্ট্রিং এবং বুলিয়ান মানগুলিতে বিভক্ত।
পূর্ণসংখ্যার আক্ষরিক
একটি পূর্ণসংখ্যা আক্ষরিক একটি দশমিক, অক্টাল, বা হেক্সাডেসিমেল ধ্রুবক।
একটি পূর্ণসংখ্যার আক্ষরিক একটি প্রত্যয় রয়েছে যা যথাক্রমে দীর্ঘ এবং স্বাক্ষরবিহীন জন্য L এবং U এর সংমিশ্রণ। প্রত্যয়টি ছোট হাতের বা বড় হাতের অক্ষর হতে পারে এবং যেকোনো ক্রমে হতে পারে।
যেমন: 212, 215u, 0xFeeL, 078, 032UU
ভাসমান-বিন্দু আক্ষরিক
একটি ভাসমান-বিন্দু আক্ষরিক একটি পূর্ণসংখ্যা অংশ, একটি ভগ্নাংশ, একটি দশমিক বিন্দু, এবং একটি সূচক অংশ আছে। আপনি ফ্লোটিং-পয়েন্ট লিটারালগুলিকে দশমিক আকারে বা সূচক আকারে উপস্থাপন করতে পারেন।
দশমিক ফর্ম ব্যবহার করে প্রতিনিধিত্ব করার সময়, আপনাকে অবশ্যই দশমিক বিন্দু, সূচক বা উভয়ই অন্তর্ভুক্ত করতে হবে। সূচকীয় ফর্ম ব্যবহার করার সময়, আপনার অবশ্যই ভগ্নাংশ, পূর্ণসংখ্যা অংশ বা উভয়ই থাকতে হবে। স্বাক্ষরিত সূচকটি E বা e দ্বারা প্রবর্তিত হয়।
বুলিয়ান লিটারালস
দুটি বুলিয়ান আক্ষরিক আছে
অক্ষর আক্ষরিক
অক্ষর আক্ষরিক একক উদ্ধৃতি মধ্যে আবদ্ধ করা হয়. আক্ষরিক L দিয়ে শুরু হলে, এটি একটি প্রশস্ত-অক্ষরের আক্ষরিক এবং একটি wchar_t ধরনের ভেরিয়েবলে সংরক্ষণ করা উচিত। অন্যথায়, এটি একটি সংকীর্ণ অক্ষর আক্ষরিক এবং চর প্রকারের একটি সাধারণ পরিবর্তনশীলে সংরক্ষণ করা হয়।
এস্কেপ সিকোয়েন্স | অর্থ |
\ | চরিত্র |
' | ' চরিত্র |
চরিত্র | |
? | ? চরিত্র |
প্রতি | সতর্কতা বা ঘণ্টা |
ব্যাকস্পেস | |
f | ফর্ম ফিড |
নতুন লাইন | |
গাড়ি ফেরত | |
অনুভূমিক ট্যাব | |
v | উল্লম্ব ট্যাব |
ooo | এক থেকে তিন অঙ্কের অক্টাল সংখ্যা |
xhh. . . | এক বা একাধিক সংখ্যার হেক্সাডেসিমেল সংখ্যা |
C++ স্টোরেজ ক্লাস
অটো স্টোরেজ ক্লাস
এটি সমস্ত স্থানীয় ভেরিয়েবলের জন্য একটি ডিফল্ট স্টোরেজ ক্লাস।
বাক্য গঠন
|_+_|রেজিস্টার স্টোরেজ ক্লাস
এগুলি স্থানীয় ভেরিয়েবলগুলিকে সংজ্ঞায়িত করতে ব্যবহৃত হয় যা RAM এর পরিবর্তে একটি রেজিস্টারে সংরক্ষণ করা হয়। এর মানে হল যে ভেরিয়েবলের সর্বোচ্চ সাইজ রেজিস্টার সাইজের সমান এবং এতে '&' অপারেটর প্রয়োগ করা যাবে না।
বাক্য গঠন
|_+_|স্ট্যাটিক স্টোরেজ ক্লাস
এটি কম্পাইলারকে প্রোগ্রামের সময় স্থানীয় ভেরিয়েবলটিকে তৈরি এবং ধ্বংস করার পরিবর্তে অস্তিত্বে রাখতে বলে। তাই স্থানীয় ভেরিয়েবলগুলিকে স্ট্যাটিক করা তাদের ফাংশন কলগুলির মধ্যে তাদের মান বজায় রাখার প্রস্তাব দেয়।
বাহ্যিক স্টোরেজ ক্লাস
এটি একটি গ্লোবাল ভেরিয়েবলের রেফারেন্স দিতে ব্যবহৃত হয় যা প্রতিটি প্রোগ্রাম ফাইলে দৃশ্যমান। আপনি যখন 'বহিরাগত' ব্যবহার করেন তখন ভেরিয়েবলটি আরম্ভ করা যায় না।
পরিবর্তনযোগ্য স্টোরেজ ক্লাস
পরিবর্তনযোগ্য স্পেসিফায়ার ক্লাস অবজেক্টে প্রযোজ্য। এটি কনস্ট সদস্য ফাংশন ওভাররাইড করার জন্য একটি বস্তুর সদস্য অফার করে। অর্থাৎ, একটি পরিবর্তনযোগ্য সদস্য একটি const সদস্য ফাংশন দ্বারা সংশোধন করা যেতে পারে।
C++ মডিফায়ারের ধরন
C++ char, int, এবং ডাবল ডাটা টাইপ অফার করে যাতে তাদের আগে মডিফায়ার থাকে। একটি মডিফায়ার বেস টাইপের অর্থ পরিবর্তন করতে ব্যবহৃত হয় যাতে এটি বিভিন্ন পরিস্থিতিতে প্রয়োজনীয়তার সাথে আরও সুনির্দিষ্টভাবে ফিট করে।
ডেটা টাইপ মডিফায়ারগুলি নীচে উল্লেখ করা হয়েছে-
সংশোধক স্বাক্ষরিত, স্বাক্ষরবিহীন, দীর্ঘ এবং সংক্ষিপ্ত পূর্ণসংখ্যা বেস প্রকারে প্রয়োগ করা হয়। উপরন্তু, স্বাক্ষরিত এবং স্বাক্ষরবিহীন চর প্রয়োগ করা হয়, এবং দীর্ঘ দ্বিগুণ প্রয়োগ করা হয়।
স্বাক্ষরিত এবং স্বাক্ষরবিহীন সংশোধকগুলি দীর্ঘ বা সংক্ষিপ্ত সংশোধকগুলির উপসর্গ হিসাবে ব্যবহৃত হয়।
কোয়ালিফায়ারের ধরন
উদাহরণ
|_+_|আউটপুট
|_+_|C++ এ অপারেটর
একটি অপারেটর হল একটি প্রতীক যা কম্পাইলারকে নির্দিষ্ট গাণিতিক বা লজিক্যাল ম্যানিপুলেশন করতে সাহায্য করে। C++ এর বিভিন্ন বিল্ট-ইন অপারেটর রয়েছে এবং নিম্নলিখিত ধরনের অপারেটরগুলি অফার করে -
পাটিগণিত অপারেটর
পাটিগণিত অপারেটরগুলি অপারেটর ছাড়া আর কিছুই নয় যেগুলি ভেরিয়েবল বা দুটি মানের মধ্যে গাণিতিক ক্রিয়াকলাপ সম্পাদন করতে ব্যবহৃত হয়।
অপারেটর | বর্ণনা | বাক্য গঠন |
+ | দুটি অপারেন্ড যোগ করে | a+b |
* | দুটি অপারেন্ড গুণ করে | a*b |
- | দুটি অপারেন্ড বিয়োগ করে | a-খ |
/ | প্রথম অপারেন্ডকে দ্বিতীয় দ্বারা ভাগ করে | a/b |
% | যখন প্রথম অপারেন্ডটি দ্বিতীয় দ্বারা ভাগ করা হয় তখন অবশিষ্টাংশ প্রদান করে | a% b |
++ | এটি এক দ্বারা পূর্ণসংখ্যার মান বৃদ্ধি করে | a++ |
— | এটি এক দ্বারা পূর্ণসংখ্যার মান হ্রাস করে | প্রতি- |
লজিক্যাল অপারেটর
C++ এ লজিক্যাল অপারেটররা ভেরিয়েবলের সত্য বা মিথ্যা মানগুলিকে একত্রিত করে যাতে আপনি তাদের ফলাফলের সত্য মানটি বের করতে পারেন।
অপারেটর | বর্ণনা | বাক্য গঠন |
অথবা (||) | অপারেন্ডের যেকোনো একটি সত্য হলে সত্য | (A || B) সত্য। |
এবং (&&) | উভয় অপারেন্ড সত্য হলে সত্য | (A & & B) মিথ্যা। |
না (!) | যদি একটি শর্ত সত্য হয়, তাহলে লজিক্যাল নয় অপারেটর মিথ্যা করবে। | !(A & & B) সত্য। |
বিটওয়াইজ অপারেটর
C++ এ বিটওয়াইজ অপারেটররা পূর্ণসংখ্যার উপর বিটওয়াইজ গণনা করে। বিটওয়াইজ অপারেটর: উভয় বিট 1 অন্য 0 হলে 1 রিটার্ন করে। উদাহরণ: a = 10 = 1010 (বাইনারী) b = 4 = 0100 (বাইনারী a & b = 1010 & 0100 = 0000 = 0 (ডেসিমাল) বিটওয়াইজ বা অপারেটর: 1 যদি বিটের যেকোনো একটি 1 অন্য 0 হয়।
অপারেটর | বর্ণনা | বাক্য গঠন |
>> | বাইনারি ডান শিফট x>> | x>> |
<< | বাইনারি বাম স্থানান্তর | এক্স<< |
^ | বাইনারি XOR | x^y |
এবং | বাইনারি এবং | x এবং y |
| | বাইনারি বা | x | Y |
~ | বাইনারি না | ~x |
নিয়োগ অপারেটর
অ্যাসাইনমেন্ট অপারেটররা ভেরিয়েবলের মান নির্ধারণ করে। a = 5 হল একটি অ্যাসাইনমেন্ট অপারেটর যেটি ডানদিকে মান 5 সেট করে বাম দিকের পরিবর্তনশীলের জন্য।
অপারেটর | বর্ণনা | বাক্য গঠন |
= | ডান পাশের অভিব্যক্তির মান বাম পাশের অপারেন্ডে বরাদ্দ করা। | a=b+c |
+= | বাম পাশের অপারেন্ডের সাথে ডান পাশের অপারেন্ড যোগ করুন এবং তারপর বাম দিকের অপারেন্ডে বরাদ্দ করুন। | a+=b a=a+b |
-= | বাম অপারেন্ড থেকে ডানের অপারেন্ড বিয়োগ করুন এবং তারপর বাম অপারেন্ডে বরাদ্দ করুন। | a-=b a=a-b |
/= | বাম অপারেন্ডকে ডানের অপারেন্ড দিয়ে ভাগ করুন এবং তারপরে বাম অপারেন্ডে বরাদ্দ করুন। | a/=b a=a/b |
%= | বাম এবং ডান অপারেন্ড ব্যবহার করে মডুলাস নিন এবং বাম অপারেন্ডে ফলাফল নির্ধারণ করুন। | a%=b a=a%b |
*= | অপারেন্ড ব্যবহার করে সূচকের মান গণনা করুন এবং বাম অপারেন্ডে মান নির্ধারণ করুন। | a*=b a=a*b |
&= | বিটওয়াইজ এবং অপারেন্ডে সঞ্চালন করে এবং বাম অপারেন্ডে মান নির্ধারণ করে। | a&=b a=a&b |
|= | অপারেন্ডে Bitwise OR সম্পাদন করে এবং বাম অপারেন্ডে মান নির্ধারণ করে। | a|=b a=a|b |
^= | অপারেন্ডে Bitwise OR সম্পাদন করে এবং বাম অপারেন্ডে মান নির্ধারণ করে। | a^=b a=a^b |
>>= | অপারেন্ডে Bitwise ডান শিফট করুন এবং বাম অপারেন্ডে মান নির্ধারণ করুন। | a>>=b a=a>>b |
<<= | অপারেন্ডে Bitwise বাম স্থানান্তর সম্পাদন করে এবং বাম অপারেন্ডে মান নির্ধারণ করে। | প্রতি<<= b a= a << b |
রিলেশনাল অপারেটর
রিলেশনাল অপারেটর হল সেই অপারেটর যা দুটি মান বা বস্তুর তুলনা করতে ব্যবহৃত হয়।
অপারেটর | বর্ণনা | বাক্য গঠন |
> | অপেক্ষা বৃহত্তর | x > y |
< | থেকে কম | এক্স |
== | সমান | x == y |
!= | সমান না | x != y |
>= | এর চেয়ে বড় বা সমান | x >= y |
<= | অপেক্ষাকৃত ছোট বা সমান | এক্স<= y |
বিবিধ অপারেটর
অপারেটর | বর্ণনা |
অবস্থা? এক্স: ওয়াই | যদি শর্তটি সত্য হয়, তবে এটি X এর মান প্রদান করে অন্যথায় Y এর মান প্রদান করে। |
, | এটি অপারেশনের একটি ক্রম সঞ্চালিত করে। কমার মান হল কমা দ্বারা পৃথক করা তালিকার শেষ অভিব্যক্তির মান। |
আকার | এটি একটি ভেরিয়েবলের আকার প্রদান করে। উদাহরণস্বরূপ, sizeof(a), যেখানে 'a' একটি পূর্ণসংখ্যা এবং 4 প্রদান করবে। |
* | এটি একটি পরিবর্তনশীল একটি পয়েন্টার. যেমন *var; একটি পরিবর্তনশীল var নির্দেশক হবে. |
কাস্ট | এটি একটি ডেটা টাইপকে অন্যটিতে রূপান্তর করে। |
. (বিন্দু) এবং -> (তীর) | এগুলি ক্লাস, কাঠামো এবং ইউনিয়নের পৃথক সদস্যদের উল্লেখ করতে ব্যবহৃত হয়। |
এবং | এটি ভেরিয়েবলের ঠিকানা প্রদান করে। |
C++ লুপ
লুপের জন্য
C++ for loop প্রোগ্রামের একটি অংশকে একাধিকবার পুনরাবৃত্তি করতে ব্যবহৃত হয়। যদি পুনরাবৃত্তির সংখ্যা স্থির করা হয়, তবে লুপের চেয়ে while বা do-while loops ব্যবহার করার পরামর্শ দেওয়া হয়।
লুপের জন্য C++ C/C# এর মতই। আমরা ভেরিয়েবল শুরু করতে পারি, কন্ডিশন চেক করতে পারি এবং মান বৃদ্ধি/কমাতে পারি।
বাক্য গঠন
|_+_|উদাহরণ
|_+_|আউটপুট
|_+_|লুপের জন্য নেস্টেড
C++ এ, আপনি লুপের জন্য অন্যটির ভিতরে লুপের জন্য ব্যবহার করতে পারেন। এটি নেস্টেড ফর লুপ নামে পরিচিত। অভ্যন্তরীণ লুপটি সম্পূর্ণরূপে কার্যকর হয় যখন বাইরের লুপটি একবার কার্যকর করা হয়। সুতরাং যদি বাইরের লুপ এবং ভিতরের লুপ চারবার কার্যকর করা হয়, তাহলে ভিতরের লুপ প্রতিটি বাইরের লুপের জন্য চারবার কার্যকর করা হবে, অর্থাৎ, মোট 16 বার।
উদাহরণ
|_+_|আউটপুট
|_+_|যখন লুপ
C++ এ, যখন লুপ প্রোগ্রামের একটি অংশকে কয়েকবার পুনরাবৃত্তি করতে ব্যবহৃত হয়। যদি পুনরাবৃত্তির সংখ্যা স্থির না হয়, তবে লুপের পরিবর্তে একটি সময় লুপ ব্যবহার করার পরামর্শ দেওয়া হয়।
বাক্য গঠন
|_+_|উদাহরণ
|_+_|আউটপুট
|_+_|নেস্টেড যখন লুপ
C++ এ, আপনি অন্য while লুপের ভিতরে একটি while লুপ ব্যবহার করতে পারেন; এটি একটি নেস্টেড while লুপ হিসাবে পরিচিত। যখন বাইরের লুপ একবার নির্বাহ করা হয় তখন নেস্টেড while লুপটি কার্যকর করা হয়।
উদাহরণ
|_+_|আউটপুট
|_+_|লুপ করার সময় করবেন
C++ do-while লুপ প্রোগ্রামের একটি অংশকে একাধিকবার পুনরাবৃত্তি করতে ব্যবহৃত হয়। যদি পুনরাবৃত্তির সংখ্যা স্থির না হয় এবং আপনাকে অবশ্যই অন্তত একবার লুপটি চালাতে হবে, এটি একটি ডু-হোয়াইল লুপ ব্যবহার করার পরামর্শ দেওয়া হয়।
C++ do-while লুপ অন্তত একবার কার্যকর করা হয় কারণ লুপ বডির পরে কন্ডিশন চেক করা হয়।
বাক্য গঠন
|_+_|উদাহরণ
|_+_|আউটপুট
|_+_|নেস্টেড ডু-হাইল লুপ
C++ এ, আপনি যদি অন্য ডু-হাইল লুপের ভিতরে একটি ডু-হাইল লুপ ব্যবহার করেন, তবে এটি নেস্টেড ডু-হাইল লুপ হিসাবে পরিচিত। নেস্টেড do-while লুপ প্রতিটি বাইরের ডু-হাইল লুপের জন্য সম্পূর্ণরূপে কার্যকর করা হয়।
উদাহরণ
|_+_|আউটপুট
|_+_|সিদ্ধান্ত গ্রহণের বিবৃতি
বাস্তব জীবনে এমন পরিস্থিতি রয়েছে যখন আপনাকে কিছু সিদ্ধান্ত নেওয়ার প্রয়োজন হয় এবং এই সিদ্ধান্তগুলির উপর ভিত্তি করে আপনি সিদ্ধান্ত নেন আপনার পরবর্তী কী করা উচিত। প্রোগ্রামিং-এও একই ধরনের সমস্যা দেখা দেয় যেখানে আপনাকে কিছু সিদ্ধান্ত নিতে হবে এবং এই সিদ্ধান্তগুলির উপর ভিত্তি করে আপনি কোডের পরবর্তী ব্লকটি কার্যকর করবেন।
প্রোগ্রামিং ভাষায় সিদ্ধান্ত গ্রহণের বিবৃতিগুলি প্রোগ্রাম নির্বাহের প্রবাহের দিক নির্ধারণ করে। সি++ এ উপলব্ধ সিদ্ধান্ত গ্রহণের বিবৃতি হল:
যদি বিবৃতি
যদি বিবৃতি একটি সহজ সিদ্ধান্ত গ্রহণের বিবৃতি হয়। বিবৃতির ব্লক কার্যকর করা হবে কিনা তা নির্ধারণ করতে এটি ব্যবহার করা হয়। শর্ত সত্য হলে বিবৃতির একটি ব্লক কার্যকর করা হয় অন্যথায় নয়।
বাক্য গঠন
|_+_|এখানে, শর্তাবলী মূল্যায়নের পরে সত্য বা মিথ্যা হবে। যদি বিবৃতি বুলিয়ান মান গ্রহণ করে।
উদাহরণ
|_+_|আউটপুট
|_+_|যদি অন্য বিবৃতি
if বিবৃতিটি বলে যে যদি একটি শর্ত সত্য হয় তবে এটি স্টেটমেন্টের ব্লক কার্যকর করবে এবং শর্তটি মিথ্যা হলে এটি কার্যকর হবে না। কন্ডিশনটি মিথ্যা হলে কোডের একটি ব্লক চালানোর জন্য আপনি if স্টেটমেন্ট সহ else স্টেটমেন্ট ব্যবহার করতে পারেন।
বাক্য গঠন
|_+_|উদাহরণ
|_+_|আউটপুট
|_+_|বিবৃতি থাকলে নেস্টেড
একটি নেস্টেড if in C++ হল একটি if স্টেটমেন্ট যা আরেকটি if স্টেটমেন্টকে লক্ষ্য করে। Nested if স্টেটমেন্ট মানে হল একটি if স্টেটমেন্টের ভিতরে আরেকটি if স্টেটমেন্ট। হ্যাঁ, C এবং C++ উভয়ই ইফ স্টেটমেন্টের মধ্যে আমাদের নেস্টেড ইফ স্টেটমেন্ট অফার করে, যেমন, আপনি একটি if স্টেটমেন্ট আরেকটি if স্টেটমেন্টের ভিতরে রাখতে পারেন।
বাক্য গঠন
|_+_|উদাহরণ
|_+_|আউটপুট
|_+_|if-else-যদি মই
একজন ব্যবহারকারী বিভিন্ন বিকল্পের মধ্যে সিদ্ধান্ত নিতে পারেন। if স্টেটমেন্টগুলি উপরে-নিচ থেকে কার্যকর করা হয়। যত তাড়াতাড়ি শর্তগুলি যদি সত্য হয় নিয়ন্ত্রণ করে, তখন তার সাথে যুক্ত বিবৃতিটি কার্যকর করা হয়, এবং বাকিটি অন্যথা-যদি মই বন্ধ করা হয়। শর্ত সত্য না হলে, শেষ এবং চূড়ান্ত বিবৃতি সঞ্চালিত হবে.
বাক্য গঠন
|_+_|উদাহরণ
|_+_|আউটপুট
|_+_|ঝাঁপ দাও বিবৃতি
বিরতি
এই বিবৃতিটি লুপটি বন্ধ করতে ব্যবহৃত হয়। লুপের মধ্যে থেকে ব্রেক স্টেটমেন্টের সম্মুখীন হওয়ার সাথে সাথে লুপের পুনরাবৃত্তি সেখানে থামে এবং নিয়ন্ত্রণ লুপের পরে প্রথম স্টেটমেন্টে অবিলম্বে ফিরে আসে।
বাক্য গঠন
বিরতি;
ব্রেক স্টেটমেন্টগুলি এমন পরিস্থিতিতে ব্যবহার করা হয় যখন আমরা লুপের জন্য পুনরাবৃত্তির প্রকৃত সংখ্যা সম্পর্কে নিশ্চিত নই বা কিছু শর্তের ভিত্তিতে লুপটি বন্ধ করে দিই।
উদাহরণ
|_+_|আউটপুট
|_+_|চালিয়ে যান
কন্টিনিউ স্টেটমেন্ট হল ব্রেক স্টেটমেন্টের বিপরীত; লুপটি বন্ধ করার পরিবর্তে, এটি লুপের পরবর্তী পুনরাবৃত্তি করতে বাধ্য করে।
অবিরত বিবৃতি লুপকে পরবর্তী পুনরাবৃত্তি কার্যকর করতে বাধ্য করে। যখন অবিরত বিবৃতিটি কার্যকর করা হয়, তখন কন্টিনিউ স্টেটমেন্ট অনুসরণ করে লুপের ভিতরের কোডটি এড়িয়ে যায় এবং পরবর্তী পুনরাবৃত্তি শুরু হবে।
বাক্য গঠন
|_+_|উদাহরণ
|_+_|আউটপুট
|_+_|যাও
C++-এ goto স্টেটমেন্ট একটি শর্তহীন জাম্প স্টেটমেন্টকে বোঝায় যা একটি ফাংশনের মধ্যে এক বিন্দু থেকে অন্য বিন্দুতে লাফ দিতে ব্যবহৃত হয়।
বাক্য গঠন
|_+_|উদাহরণ
|_+_|আউটপুট
|_+_|প্রত্যাবর্তন
C++ এ রিটার্ন ফাংশনে এক্সিকিউশনের প্রবাহ ফিরিয়ে দেয়। এই বিবৃতি কোন শর্তসাপেক্ষ বিবৃতি প্রয়োজন নেই. একবার বিবৃতিটি কার্যকর করা হলে, প্রোগ্রামের প্রবাহ অবিলম্বে বন্ধ হয়ে যায় এবং যেখান থেকে এটি কল করা হয়েছিল সেখান থেকে নিয়ন্ত্রণ ফিরিয়ে দেয়। রিটার্ন স্টেটমেন্ট একটি অকার্যকর ফাংশনের জন্য কিছু ফেরত দিতে পারে বা নাও পারে, কিন্তু একটি অকার্যকর ফাংশনের জন্য একটি রিটার্ন মান অবশ্যই ফেরত দিতে হবে।
বাক্য গঠন
|_+_|উদাহরণ
|_+_|আউটপুট
|_+_|C++ ফাংশন
একটি ফাংশন বিবৃতিগুলির একটি গ্রুপকে বোঝায় যা ইনপুট নেয়, এটি প্রক্রিয়া করে এবং আউটপুট প্রদান করে। ফাংশনের উদ্দেশ্য হল কাজগুলিকে একত্রিত করা যা বারবার করা হয়। আপনার যদি বিভিন্ন ইনপুট থাকে তবে আপনাকে আবার একই কোড লিখতে হবে না। আপনি প্যারামিটার নামে পরিচিত ডেটার একটি ভিন্ন সেট দিয়ে ফাংশনটিকে কল করতে পারেন।
C++ প্রোগ্রামের অন্তত একটি ফাংশন আছে, প্রধান() ফাংশন।
একটি ফাংশন সংজ্ঞায়িত করা
C++ এ একটি ফাংশন সংজ্ঞা একটি ফাংশন হেডার এবং একটি বডি নিয়ে গঠিত।
উদাহরণ
|_+_|একটি ফাংশন ঘোষণা
C++ এ, ফাংশনগুলি ব্যবহার করার আগে অবশ্যই ঘোষণা করতে হবে। আপনি একটি ফাংশন এর রিটার্ন মান, নাম এবং এর আর্গুমেন্টের ধরন প্রদান করে ঘোষণা করতে পারেন। আর্গুমেন্টের শর্তাবলী ঐচ্ছিক। একটি ফাংশন সংজ্ঞা একটি ফাংশন ঘোষণা হিসাবে গণনা করা হয়।
উদাহরণ
|_+_|একটি ফাংশন কলিং
আপনি যখন একটি C++ ফাংশন তৈরি করেন, আপনি ফাংশনটি কী করতে হবে তা নির্ধারণ করুন। একটি ফাংশন ব্যবহার করতে, আপনাকে সেই ফাংশনটিকে কল করতে বা আহ্বান করতে হবে।
যখন প্রোগ্রামটি একটি ফাংশনকে কল করে, তখন প্রোগ্রাম কন্ট্রোল কল ফাংশনে স্থানান্তরিত হয়। একটি কল ফাংশন একটি সংজ্ঞায়িত কাজ সম্পাদন করে এবং যখন এটির রিটার্ন স্টেটমেন্ট কার্যকর করা হয় বা যখন এটির ফাংশন-এন্ডিং ক্লোজিং ব্রেসে পৌঁছে যায়, তখন এটি মূল প্রোগ্রামে প্রোগ্রাম নিয়ন্ত্রণ ফিরিয়ে দেয়।
উদাহরণ
|_+_|ফাংশন আর্গুমেন্ট
যদি একটি ফাংশন আর্গুমেন্ট ব্যবহার করে, তবে এটি ভেরিয়েবল ঘোষণা করা উচিত যা আর্গুমেন্টের মান গ্রহণ করে। এই ভেরিয়েবল হিসাবে পরিচিত হয় ফাংশনের আনুষ্ঠানিক পরামিতি।
C++ সংখ্যা
সাধারণত, যখন আমরা সংখ্যা নিয়ে কাজ করি, তখন আমরা আদিম ডেটা টাইপ ব্যবহার করি যেমন int, শর্ট, লং, ফ্লোট, ডাবল ইত্যাদি। C++ ডেটা টাইপ নিয়ে আলোচনা করার সময় ডেটা টাইপের সংখ্যা, তাদের সম্ভাব্য মান এবং সংখ্যার ব্যাপ্তি ব্যাখ্যা করা হয়েছে।
উদাহরণ
|_+_|আউটপুট
|_+_|C++ এ গণিত অপারেটর
হ্যাঁ না | ফাংশন | উদ্দেশ্য |
এক | দ্বিগুণ পাপ (ডবল); | এটি একটি কোণ (দ্বৈত হিসাবে) নেয় এবং সাইনটি ফেরত দেয়। |
দুই | ডবল cos(ডবল); | এটি একটি কোণ (দ্বৈত হিসাবে) নেয় এবং কোসাইন প্রদান করে। |
3 | ডবল ট্যান (ডবল); | এটি একটি কোণ (দ্বৈত হিসাবে) নেয় এবং স্পর্শক প্রদান করে। |
4 | ডবল পাউ (ডবল, ডবল); | প্রথমটি হল একটি সংখ্যা যা আপনি বাড়াতে চান এবং দ্বিতীয়টি হল আপনি যে শক্তিটি বাড়াতে চান তা টি |
5 | ডবল লগ (ডবল); | এটি একটি সংখ্যা নেয় এবং সেই সংখ্যার স্বাভাবিক লগ প্রদান করে। |
6 | ডবল হাইপোট (ডবল, ডবল); | আপনি যদি এটিকে একটি সমকোণী ত্রিভুজের দুই বাহুর দৈর্ঘ্য অতিক্রম করেন তবে এটি আপনাকে কর্ণের দৈর্ঘ্য ফিরিয়ে দেবে। |
7 | ডবল sqrt (ডবল); | আপনি ফাংশনটি একটি সংখ্যা পাস করেন এবং এটি আপনাকে বর্গমূল দেয়। |
8 | int abs(int); | এটি একটি পূর্ণসংখ্যার পরম মান প্রদান করে যা এটিতে পাস করা হয়। |
9 | ডাবল ফ্লোর (ডবল); | পূর্ণসংখ্যাটি খুঁজে বের করে যা এটিতে পাস করা আর্গুমেন্টের চেয়ে কম বা সমান। |
10 | ডবল ফ্যাবস (ডবল); | এটি পাস করা যেকোনো দশমিক সংখ্যার পরম মান প্রদান করে। |
উদাহরণ
|_+_|আউটপুট
|_+_|C++ অ্যারে
C++-এ একটি অ্যারে হল সংলগ্ন মেমরি অবস্থানগুলিতে সংরক্ষিত আইটেমগুলির একটি সংগ্রহ, এবং অ্যারের সূচকগুলি ব্যবহার করে উপাদানগুলি এলোমেলোভাবে অ্যাক্সেস করা যেতে পারে। এগুলি অনুরূপ উপাদানগুলি সংরক্ষণ করতে ব্যবহৃত হয় কারণ ডেটা টাইপ অবশ্যই সমস্ত উপাদানের জন্য একই হতে হবে। তারা প্রাইমিটিভ ডাটা টাইপ যেমন char, int, float, double ইত্যাদি সঞ্চয় করতে পারে। এতে যোগ করার জন্য C++-এ একটি অ্যারে প্রাপ্ত তথ্য যেমন স্ট্রাকচার, পয়েন্টার ইত্যাদি সংরক্ষণ করতে পারে। নিচে একটি অ্যারের মনোরম উপস্থাপনা দেওয়া হল। .
অ্যারে ঘোষণা
বাক্য গঠন
|_+_|উদাহরণ
|_+_|এখানে,
অ্যারে অ্যাক্সেস উপাদান
একটি অ্যারের প্রতিটি উপাদান একটি সংখ্যা সঙ্গে সংযুক্ত করা হয়. সংখ্যাটিকে অ্যারে সূচক বলা হয়। আপনি সূচক ব্যবহার করে একটি অ্যারের উপাদান অ্যাক্সেস করতে পারেন।
বাক্য গঠন
|_+_|উদাহরণ
|_+_|এখানে C++ অ্যারের কয়েকটি গুরুত্বপূর্ণ ধারণা রয়েছে
C++ স্ট্রিং
এটি চরিত্রের একটি সংগ্রহ। C++ প্রোগ্রামিং ভাষায় দুই ধরনের স্ট্রিং ব্যবহার করা হয়:
স্ট্রিং ক্লাস
C++ লাইব্রেরি একটি প্রদান করে স্ট্রিং ক্লাস টাইপ যা উপরে উল্লিখিত সমস্ত ক্রিয়াকলাপকে সমর্থন করে, উপরন্তু আরও অনেক কার্যকারিতা।
উদাহরণ
|_+_|আউটপুট
|_+_|সি স্ট্রিং
এই স্ট্রিংটি C ভাষার মধ্যে উদ্ভূত হয়েছে এবং C++ এর মধ্যে সমর্থিত। এই স্ট্রিংটি অক্ষরের একটি এক-মাত্রিক অ্যারে যা একটি নাল অক্ষর ' ' দ্বারা সমাপ্ত হয়। এইভাবে নাল-টার্মিনেটেড স্ট্রিংটিতে এমন অক্ষর রয়েছে যা স্ট্রিংকে নাল দ্বারা অনুসরণ করে।
উদাহরণ
|_+_|আউটপুট
|_+_|কিছু ফাংশন যা নাল-টার্মিনেটেড স্ট্রিংকে ম্যানিপুলেট করে
এটি স্ট্রিং s2 কে স্ট্রিং s1 এ কপি করে।
এটি স্ট্রিং s2 কে স্ট্রিং s1 এর শেষে সংযুক্ত করে।
এটি স্ট্রিং s1-এ স্ট্রিং s2 এর উপস্থিতিতে একটি পয়েন্টার প্রদান করে।
এটি স্ট্রিং s1 এর দৈর্ঘ্য প্রদান করে।
এটি 0 প্রদান করে যদি s1 এবং s2 একই হয়; s1s2 হলে 0 এর কম।
এটি স্ট্রিং s1-এ ch অক্ষরের উপস্থিতিতে পয়েন্টারকে ফিরিয়ে দেয়।
C++ পয়েন্টার
পয়েন্টার হল ঠিকানাগুলির একটি প্রতিনিধিত্ব। তারা প্রোগ্রামগুলিকে কল-বাই-রেফারেন্স অনুকরণ করতে এবং গতিশীল ডেটা স্ট্রাকচার তৈরি এবং ম্যানিপুলেট করতে সক্ষম করে।
বাক্য গঠন
|_+_|কিভাবে একটি পয়েন্টার ব্যবহার করবেন?
পয়েন্টার কিছু ধারণা
উদাহরণ
|_+_|আউটপুট
|_+_|C++ রেফারেন্স
একটি রেফারেন্স ভেরিয়েবল হল একটি ইতিমধ্যে বিদ্যমান ভেরিয়েবলের নাম। একবার একটি রেফারেন্স শুরু হয়ে গেলে হয় পরিবর্তনশীল নাম বা রেফারেন্স নামটি ভেরিয়েবলটিকে উল্লেখ করতে ব্যবহার করা যেতে পারে।
উদাহরণ
|_+_|আউটপুট
|_+_|C++ তারিখ এবং সময়
C++ লাইব্রেরি সঠিক তারিখের ধরন প্রদান করে না। এটি সি থেকে তারিখ এবং সময় ম্যানিপুলেশনের জন্য স্ট্রাকট এবং ফাংশন উত্তরাধিকার সূত্রে প্রাপ্ত হয়। তারিখ এবং সময়-সম্পর্কিত ফাংশন এবং কাঠামো অ্যাক্সেস করতে, আপনাকে আপনার C++ প্রোগ্রামে হেডার ফাইল অন্তর্ভুক্ত করতে হবে।
সময়-সম্পর্কিত চারটি প্রকার রয়েছে: clock_t, time_t, size_t, এবং tm। প্রকারগুলি - clock_t, size_t, এবং time_t কিছু পূর্ণসংখ্যা হিসাবে সিস্টেমের সময় এবং তারিখ উপস্থাপন করতে সক্ষম।
উদাহরণ
|_+_|কিছু গুরুত্বপূর্ণ ফাংশন
এটি 1 জানুয়ারী, 1970 থেকে অতিবাহিত কয়েক সেকেন্ডের মধ্যে বর্তমান ক্যালেন্ডারের সময় ফেরত দেয়৷ যদি সিস্টেমে সময় না থাকে, তাহলে .1 ফেরত দেওয়া হয়৷
এটি ফর্মের একটি পংক্তিতে একটি পয়েন্টার ফেরত দেয় দিন মাস বছর ঘন্টা: মিনিট: সেকেন্ড।
এটি একটি পয়েন্টার ফেরত টিএম স্থানীয় সময় প্রতিনিধিত্ব করে কাঠামো।
এটি একটি মান প্রদান করে যা কলিং প্রোগ্রামটি চলার সময় আনুমানিক। সময় পাওয়া না গেলে .1 এর একটি মান ফেরত দেওয়া হয়।
এটি স্ট্রিংটিতে একটি পয়েন্টার ফেরত দেয় যাতে ফর্মে রূপান্তরিত সময় দ্বারা নির্দেশিত কাঠামোতে সংরক্ষিত তথ্য থাকে: দিন মাসের তারিখ ঘন্টা: মিনিট: সেকেন্ড
এটি একটি টিএম গঠন আকারে সময়ের একটি পয়েন্টার প্রদান করে।
এটি সময় দ্বারা নির্দেশিত কাঠামোতে পাওয়া ক্যালেন্ডার-সময় প্রদান করে।
এটি time1 এবং time2 এর মধ্যে সেকেন্ডের পার্থক্য গণনা করে।
এটি একটি নির্দিষ্ট বিন্যাসে তারিখ এবং সময় ফর্ম্যাট করতে ব্যবহার করা যেতে পারে।
C++ ডেটা স্ট্রাকচার
C++ অ্যারেগুলি আপনাকে ভেরিয়েবলগুলিকে সংজ্ঞায়িত করার প্রস্তাব দেয় যা একই ধরণের বিভিন্ন ডেটা আইটেমকে একত্রিত করে। তবুও, দ গঠন আরেকটি ব্যবহারকারী-সংজ্ঞায়িত ডেটা টাইপ যা আপনাকে বিভিন্ন ধরণের ডেটা আইটেম একত্রিত করতে সক্ষম করবে। কাঠামো একটি রেকর্ড প্রতিনিধিত্ব করতে ব্যবহৃত হয়.
একটি কাঠামো সংজ্ঞায়িত করা
একটি গঠন সংজ্ঞায়িত করতে, আপনি struct বিবৃতি ব্যবহার করা উচিত. struct স্টেটমেন্ট প্রোগ্রামের জন্য একাধিক সদস্য সহ একটি ডেটা টাইপ সংজ্ঞায়িত করে।
|_+_|দ্য গঠন ট্যাগ ঐচ্ছিক। সংজ্ঞার শেষে, চূড়ান্ত সেমিকোলনের আগে, আপনাকে এক বা একাধিক কাঠামোর ভেরিয়েবল নির্দিষ্ট করতে হবে।
কাঠামোর সদস্যদের অ্যাক্সেস করা
কাঠামোর যেকোনো সদস্যকে অ্যাক্সেস করতে, আপনি ব্যবহার করতে পারেন সদস্য অ্যাক্সেস অপারেটর (.) . মেম্বার এক্সেস অপারেটরকে একটি স্ট্রাকচার ভেরিয়েবলের নাম এবং আমরা যে স্ট্রাকচার মেম্বার অ্যাক্সেস করতে চাই তার মধ্যে একটি সময়কাল হিসাবে কোড করা হয়। আপনি ব্যবহার করবেন একটি কাঠামো গঠন প্রকারের ভেরিয়েবল সংজ্ঞায়িত করার জন্য কীওয়ার্ড।
ফাংশন আর্গুমেন্ট হিসাবে গঠন
আপনি কাঠামোটিকে ফাংশন আর্গুমেন্ট হিসাবে পাস করতে পারেন যেভাবে আপনি অন্য কোনও ভেরিয়েবল বা পয়েন্টার পাস করেন।
উদাহরণ
|_+_|আউটপুট
|_+_|C++ ক্লাস এবং অবজেক্ট
C++ এর সবকিছুই ক্লাস এবং অবজেক্টের সাথে সম্পর্কিত, তাদের বৈশিষ্ট্য এবং পদ্ধতি সহ। উদাহরণস্বরূপ: বাস্তব জীবনে, একটি বাস একটি বস্তু . বাস আছে গুণাবলী , যেমন ওজন এবং রঙ, এবং পদ্ধতি , যেমন ড্রাইভ এবং ব্রেক।
গুণাবলী এবং পদ্ধতি হল ভেরিয়েবল এবং ফাংশন যে শ্রেণীর অন্তর্গত। তারা ক্লাস মেম্বার হিসেবে পরিচিত। ক্লাস হল একটি ব্যবহারকারী-সংজ্ঞায়িত ডাটা টাইপ যা আপনি একটি প্রোগ্রামে ব্যবহার করতে পারেন এবং এটি অবজেক্ট কনস্ট্রাক্টর বা অবজেক্ট তৈরির ব্লুপ্রিন্ট হিসেবে কাজ করে।
একটি ক্লাস তৈরি করুন
আপনি একটি ক্লাস তৈরি করতে চান, আপনি ব্যবহার করতে হবে ক্লাস কীওয়ার্ড:
উদাহরণ
|_+_|একটি অবজেক্ট তৈরি করুন
C++ এ, একটি ক্লাস থেকে একটি অবজেক্ট তৈরি করা হয়।
একটি অবজেক্ট তৈরি করতে আপনাকে ক্লাসের নাম উল্লেখ করতে হবে, তারপরে অবজেক্টের নাম। ক্লাসের বৈশিষ্ট্যগুলি অ্যাক্সেস করতে, অবজেক্টে ডট সিনট্যাক্স (.) ব্যবহার করুন:
উদাহরণ
|_+_|বিস্তারিত কিছু ধারণা
C++ উত্তরাধিকার
উত্তরাধিকার এমন একটি প্রক্রিয়া যেখানে একটি বস্তু তার মূল বস্তুর সমস্ত বৈশিষ্ট্য এবং আচরণ স্বয়ংক্রিয়ভাবে অর্জন করে। আপনি অন্যান্য ক্লাসে সংজ্ঞায়িত বৈশিষ্ট্য এবং ক্রিয়াগুলি সংশোধন করতে পারেন।
যে শ্রেণীটি অন্য শ্রেণীর সদস্যদের উত্তরাধিকারসূত্রে প্রাপ্ত হয় তাকে একটি উদ্ভূত শ্রেণী বলা হয় এবং যে শ্রেণীর সদস্যরা উত্তরাধিকার সূত্রে প্রাপ্ত হয় তাকে বেস শ্রেণী হিসাবে পরিচিত। প্রাপ্ত শ্রেণী হল বেস শ্রেণীর জন্য বিশেষায়িত শ্রেণী।
উত্তরাধিকারের প্রকারভেদ
'A' হল বেস ক্লাস,
'B' একটি উদ্ভূত শ্রেণী।



ক্লাস ডি ক্লাস C এবং ক্লাস B এর পাশাপাশি ক্লাস A. ক্লাস C, এবং ক্লাস B ক্লাস A-এর উত্তরাধিকারী হয়। ক্লাস A হল ক্লাস B এবং ক্লাস C এবং ক্লাস D-এর পিতামাতা।


C++ অ্যাক্সেস মডিফায়ার
অ্যাক্সেস মডিফায়ারগুলি ডেটা হাইডিং নামে পরিচিত অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের একটি অপরিহার্য দিক বাস্তবায়নের জন্য ব্যবহার করা হয়। একটি ক্লাসে অ্যাক্সেস মডিফায়ারগুলি ক্লাস সদস্যদের অ্যাক্সেস বরাদ্দ করতে ব্যবহৃত হয়। এটি ক্লাসের সদস্যদের বাইরের ফাংশনগুলি সরাসরি অ্যাক্সেস না করার জন্য কিছু বিধিনিষেধ সেট করে।
C++ এ উপলব্ধ তিন ধরনের অ্যাক্সেস মডিফায়ার রয়েছে:
আসুন তাদের বিস্তারিত আলোচনা করা যাক:
পাবলিক
পাবলিক স্পেসিফায়ারের অধীনে ঘোষিত সমস্ত শ্রেণীর সদস্য সকলের জন্য উপলব্ধ। পাবলিক হিসাবে ঘোষিত সদস্য ফাংশন অন্যান্য ক্লাস এবং ফাংশন দ্বারাও অ্যাক্সেস করা যেতে পারে। একটি ক্লাসের পাবলিক সদস্যরা সেই ক্লাসের অবজেক্টের সাথে অ্যাক্সেস অপারেটর (.) ব্যবহার করে প্রোগ্রামের যেকোনো জায়গা থেকে অ্যাক্সেস করা যেতে পারে।
উদাহরণ
|_+_|আউটপুট
|_+_|ব্যক্তিগত
ক্লাসের অভ্যন্তরে সদস্য ফাংশনগুলি কেবলমাত্র ব্যক্তিগত ঘোষণা করা ক্লাস সদস্যদের অ্যাক্সেস করতে পারে। ক্লাসের বাইরে কোনো বস্তু বা ফাংশন দ্বারা এগুলি সরাসরি অ্যাক্সেস করা যায় না। শুধুমাত্র বন্ধু ফাংশন একটি ক্লাস সদস্যদের ব্যক্তিগত তথ্য অ্যাক্সেস করার অনুমতি দেওয়া হয়.
উদাহরণ
|_+_|আউটপুট
|_+_|সুরক্ষিত
একটি সুরক্ষিত অ্যাক্সেস মডিফায়ার একটি ব্যক্তিগত অ্যাক্সেস মডিফায়ারের মতোই কারণ এটি তার ক্লাসের বাইরে অ্যাক্সেস করা যায় না যদি না, একটি বন্ধু শ্রেণির সাহায্যে, পার্থক্য হল যে ক্লাস সদস্যদের সুরক্ষিত হিসাবে ঘোষণা করা হয় যে কোনও প্রাপ্ত শ্রেণি দ্বারা অ্যাক্সেস করা যেতে পারে সেই শ্রেণীরও।
উদাহরণ
|_+_|আউটপুট
|_+_|C++ ওভারলোডিং
C++ প্রোগ্রামিং ভাষা আপনাকে a এর একাধিক সংজ্ঞা নির্দিষ্ট করতে দেয় ফাংশন নাম বা একটি অপারেটর একই সুযোগে, বলা হয় ফাংশন ওভারলোডিং এবং অপারেটর ওভারলোডিং , যথাক্রমে।
একটি ওভারলোডেড ঘোষণা একই সুযোগে পূর্বে ঘোষিত ঘোষণার মতো একই নামে ঘোষণা করা হয়, উভয় ঘোষণার ভিন্ন যুক্তি এবং ভিন্ন সংজ্ঞা রয়েছে।
ফাংশন ওভারলোডিং
ফাংশন ওভারলোডিং এমন একটি বৈশিষ্ট্য যা আপনাকে একই নামের একাধিক ফাংশন কিন্তু একটি ভিন্ন প্যারামিটার তালিকার অফার করে।
উদাহরণ
|_+_|আউটপুট
|_+_|সি++ পলিমরফিজম
অপারেটর ওভারলোডিং
আপনি ব্যবহারকারী-সংজ্ঞায়িত ক্লাসের জন্য অপারেটরদের কাজ করতে পারেন। এর অর্থ হল C++ অপারেটরদের একটি ডেটা টাইপের জন্য একটি বিশেষ অর্থ প্রদান করতে পারে। এটি অপারেটর ওভারলোডিং হিসাবে পরিচিত।
উদাহরণ
|_+_|আউটপুট
|_+_|এটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ ধারণা। এর অর্থ একাধিক রূপ। অর্থাৎ, একই সত্তা ভিন্ন ভিন্ন পরিস্থিতিতে ভিন্নভাবে আচরণ করে।
ফাংশন ওভাররাইডিং
আপনার বেস ক্লাসের পাশাপাশি প্রাপ্ত ক্লাসে একই ফাংশন থাকতে পারে। আপনি যখন ডেরাইভড ক্লাসের একটি অবজেক্ট ব্যবহার করে ফাংশনটিকে কল করেন, তখন ডেরাইভড ক্লাসের ফাংশন বেস ক্লাসের পরিবর্তে এক্সিকিউট হয়।
অতএব, ফাংশন কলিং বস্তুর উপর নির্ভর করে বিভিন্ন ফাংশন নির্বাহ করা হয়। একে ফাংশন ওভাররাইডিং বলা হয়
উদাহরণ
|_+_|আউটপুট
|_+_|C++ ভার্চুয়াল ফাংশন
C++ এ, আপনি ফাংশনগুলিকে ওভাররাইড করতে পারবেন না যদি আমরা একটি বেস ক্লাস পয়েন্টার ব্যবহার করে উদ্ভূত ক্লাসের একটি বস্তুকে নির্দেশ করি।
বেস ক্লাসে ভার্চুয়াল ফাংশন ব্যবহার করা নিশ্চিত করে যে এই ক্ষেত্রে ফাংশনটি ওভাররাইড করা যেতে পারে। সুতরাং, ভার্চুয়াল ফাংশনগুলি ফাংশন ওভাররাইডিংয়ের আওতায় পড়ে।
বিশুদ্ধ ভার্চুয়াল ফাংশন
এটা সম্ভব যে আপনি একটি বেস ক্লাসে একটি ভার্চুয়াল ফাংশন অন্তর্ভুক্ত করতে চান যাতে এটি একটি প্রাপ্ত ক্লাসে পুনরায় সংজ্ঞায়িত করা যেতে পারে যাতে সেই শ্রেণীর বস্তুর সাথে মানানসই হয়, কিন্তু বেস ক্লাসে ফাংশনের জন্য আপনি কোন অর্থপূর্ণ সংজ্ঞা দিতে পারেন না। .
উদাহরণ
|_+_|C++ ডেটা অ্যাবস্ট্রাকশন
C++-এ অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের অপরিহার্য বৈশিষ্ট্যগুলির মধ্যে একটি হল ডেটা অ্যাবস্ট্রাকশন। বিমূর্তকরণ মানে শুধুমাত্র প্রাসঙ্গিক তথ্য প্রদর্শন করা এবং বিবরণ গোপন করা। ডেটা বিমূর্ততা বলতে বোঝায় বাইরের বিশ্বের ডেটা সম্পর্কে শুধুমাত্র প্রয়োজনীয় তথ্য প্রদান করা, পটভূমির বিবরণ লুকানো বা বাস্তবায়ন।
ক্লাস ব্যবহার করে বিমূর্ততা
আপনি ক্লাসের সাহায্যে C++ এ অ্যাবস্ট্রাকশন বাস্তবায়ন করতে পারেন। ক্লাস আপনাকে উপলভ্য অ্যাক্সেস স্পেসিফায়ার ব্যবহার করে ডেটা সদস্য এবং সদস্য ফাংশনগুলিকে গ্রুপ করতে সহায়তা করে। একটি ক্লাস সিদ্ধান্ত নিতে পারে কোন ডেটা সদস্য বাইরের বিশ্বের কাছে দৃশ্যমান হবে এবং কোনটি নয়।
অ্যাক্সেস স্পেসিফায়ার ব্যবহার করে বিমূর্ততা
অ্যাক্সেস স্পেসিফায়ার C++ এ বিমূর্ততা বাস্তবায়নে গুরুত্বপূর্ণ ভূমিকা পালন করে। আপনি ক্লাসের সদস্যদের উপর বিধিনিষেধ প্রয়োগ করতে অ্যাক্সেস স্পেসিফায়ার ব্যবহার করতে পারেন। উদাহরণ স্বরূপ:
উদাহরণ
|_+_|আউটপুট
|_+_|C++ ডেটা এনক্যাপসুলেশন
এটি ক্লাস নামক একক ইউনিটে ফাংশন এবং ডেটা সদস্যদের একত্রিত করার প্রক্রিয়া। এটি সরাসরি ডেটা অ্যাক্সেস রোধ করার জন্য। ক্লাসের ফাংশনগুলির মাধ্যমে তাদের অ্যাক্সেস দেওয়া হয়। এটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের জনপ্রিয় বৈশিষ্ট্যগুলির মধ্যে একটি যা ডেটা লুকিয়ে রাখতে সহায়তা করে।
এটি বাস্তবায়ন করতে
উদাহরণ
|_+_|আউটপুট
|_+_|C++ বিমূর্ত ক্লাস
C++ ক্লাসকে এর একটি ফাংশনকে vital> pure ভার্চুয়াল ফাংশন হিসেবে ঘোষণা করে বিমূর্ত করা হয়। একটি বিশুদ্ধ ভার্চুয়াল ফাংশন এর ঘোষণায় = 0 স্থাপন করে উল্লেখ করা হয়েছে। প্রাপ্ত ক্লাস তাদের বাস্তবায়ন প্রদান করতে হবে.
উদাহরণ
|_+_|আউটপুট
|_+_|C++ ফাইল এবং স্ট্রীম
হ্যাঁ না | ডেটা টাইপ | বর্ণনা |
এক | অফস্ট্রিম | এটি আউটপুট ফাইল স্ট্রীম প্রতিনিধিত্ব করে এবং এটি ফাইল তৈরি করতে এবং ফাইলগুলিতে তথ্য লিখতে ব্যবহৃত হয়। |
দুই | ifstream | এটি ইনপুট ফাইল স্ট্রিম প্রতিনিধিত্ব করে এবং এটি ফাইল থেকে তথ্য পড়তে ব্যবহৃত হয়। |
3 | fstream | এটি সাধারণত ফাইল স্ট্রীম প্রতিনিধিত্ব করে এবং অফস্ট্রিম এবং ifstream উভয়েরই ক্ষমতা রয়েছে। |
একটি ফাইল খোলা হচ্ছে
আপনি এটি পড়তে বা লিখতে পারার আগে একটি ফাইল খোলা উচিত। হয় fstream বা অফস্ট্রিম অবজেক্ট লেখার জন্য একটি ফাইল খুলতে ব্যবহার করা যেতে পারে। একটি ifstream অবজেক্ট শুধুমাত্র পড়ার উদ্দেশ্যে ফাইল খুলতে ব্যবহৃত হয়।
হ্যাঁ না | মোড পতাকা | বর্ণনা |
এক | ios::ate | ফাইলের সমস্ত আউটপুট শেষে যুক্ত করতে হবে। |
দুই | ios::অ্যাপ | এটি আউটপুটের জন্য একটি ফাইল খোলে এবং ফাইলের শেষে পড়া বা লেখার নিয়ন্ত্রণ নিয়ে যায়। |
3 | ios:: trunc | যদি ফাইলটি ইতিমধ্যেই বিদ্যমান থাকে, তাহলে ফাইলটি খোলার আগে বিষয়বস্তু কেটে ফেলা হবে। |
4 | ios::আউট | এটি লেখার জন্য একটি ফাইল খোলে। |
5 | ios::in | এটি পড়ার জন্য একটি ফাইল খোলে। |
বাক্য গঠন
|_+_|একটি ফাইল বন্ধ করা হচ্ছে
একটি C++ প্রোগ্রাম বন্ধ হয়ে গেলে এটি স্বয়ংক্রিয়ভাবে সমস্ত স্ট্রিম ফ্লাশ করে, সমস্ত বরাদ্দ করা মেমরি ছেড়ে দেয় এবং খোলা সমস্ত ফাইল বন্ধ করে দেয়।
বাক্য গঠন
|_+_|একটি ফাইল থেকে পড়া
আপনি স্ট্রিম নিষ্কাশন অপারেটর (>>) ব্যবহার করে আপনার প্রোগ্রামে একটি ফাইল থেকে তথ্য পড়তে পারেন। শুধুমাত্র পার্থক্য হল আপনি cin অবজেক্টের পরিবর্তে একটি fstream বা ifstream অবজেক্ট ব্যবহার করেন।
উদাহরণ পড়ুন এবং লিখুন
|_+_|আউটপুট
|_+_|ফাইল অবস্থান পয়েন্টার
ostream এবং istream উভয়ই ফাইল-পজিশন পয়েন্টার পুনঃস্থাপনের জন্য সদস্য ফাংশন প্রদান করে। এই সদস্য ফাংশনগুলি হল ওস্ট্রিমের জন্য সন্ধান করা এবং আইস্ট্রিমের জন্য সন্ধান করা। সন্ধান এবং সন্ধানের যুক্তিটি একটি দীর্ঘ পূর্ণসংখ্যা। অনুসন্ধানের দিক নির্দেশ করার জন্য একটি দ্বিতীয় যুক্তি উল্লেখ করা যেতে পারে।
C++ ব্যতিক্রম হ্যান্ডলিং
C++ এ ব্যতিক্রম হ্যান্ডলিং হল রানটাইম ত্রুটিগুলি পরিচালনা করার একটি প্রক্রিয়া। আপনি ব্যতিক্রম পরিচালনা করেন যাতে রানটাইম ত্রুটির পরেও অ্যাপ্লিকেশনের স্বাভাবিক প্রবাহ বজায় রাখা যায়।
C++ এ, একটি ব্যতিক্রম হল একটি ঘটনা বা বস্তু যা রানটাইমে নিক্ষেপ করা হয়। সমস্ত ব্যতিক্রম std::exception class থেকে প্রাপ্ত। যদি আমরা ব্যতিক্রমটি পরিচালনা না করি তবে এটি ব্যতিক্রম বার্তাটি প্রিন্ট করে এবং প্রোগ্রামটি বন্ধ করে দেয়।
ব্যতিক্রম | বর্ণনা |
std::bad_exception | এটি অপ্রত্যাশিত ব্যতিক্রমগুলি পরিচালনা করতে ব্যবহৃত হয়। |
std::logic_failure | এটি একটি কোড পড়ার মাধ্যমে সনাক্ত করা যেতে পারে। |
std::bad_typeid | এটা সাধারণত টাইপড দ্বারা নিক্ষিপ্ত করা হয়. |
std::runtime_error | এটি একটি কোড পড়ে সনাক্ত করা যাবে না। |
std:: ব্যতিক্রম | এটি সমস্ত স্ট্যান্ডার্ড C++ ব্যতিক্রমগুলির একটি ব্যতিক্রম এবং অভিভাবক শ্রেণী। |
std::bad_cast | এটি সাধারণত dynamic_cast দ্বারা নিক্ষিপ্ত হয়। |
std::bad_alloc | এটা সাধারণত নতুন দ্বারা নিক্ষিপ্ত করা হয়. |
C++ ব্যতিক্রম হ্যান্ডলিং তিনটি কীওয়ার্ডের উপর ভিত্তি করে: ধরার চেষ্টা কর, এবং নিক্ষেপ .
উদাহরণ
|_+_|C++ ডাইনামিক মেমরি
স্মৃতি দুটি ভাগে বিভক্ত -
প্রোগ্রাম চলাকালীন প্রোগ্রামাররা গতিশীলভাবে স্টোরেজ স্পেস বরাদ্দ করতে পারে। তবুও, প্রোগ্রামাররা নতুন পরিবর্তনশীল নাম তৈরি করতে পারে না এবং এই কারণে, গতিশীল বরাদ্দের জন্য দুটি মানদণ্ড প্রয়োজন:
মেমরি ডি-অ্যালোকেশন এই ধারণার একটি অংশ যেখানে অন্যান্য ডেটা স্টোরেজের জন্য স্থান পরিষ্কার করা হয়। ডায়নামিক মেমরি ডি-অ্যালোকেট করার জন্য, আপনি ডিলিট অপারেটর ব্যবহার করতে পারেন। সুতরাং, ডায়নামিক মেমরি বরাদ্দকরণ ম্যানুয়ালি ডায়নামিক মেমরি বরাদ্দের জন্য মেমরি ব্যবস্থাপনা সম্পাদনকে বোঝায়।
নতুন এবং অপারেটর মুছে দিন
এখানে, ডেটা-টাইপ যেকোন অন্তর্নির্মিত ডেটা টাইপ হতে পারে যাতে একটি অ্যারে অন্তর্ভুক্ত থাকে, বা ব্যবহারকারী-সংজ্ঞায়িত ডেটা টাইপের ক্লাস বা কাঠামো থাকে। বিল্ট-ইন ডেটা টাইপ দিয়ে শুরু করা যাক
বাক্য গঠন
|_+_|যখন আপনি একটি পরিবর্তনশীল অনুভব করেন যেটি গতিশীলভাবে বরাদ্দ করা হয় না এবং আর প্রয়োজন হয় না, আপনি ফ্রি স্টোরে মেমরি খালি করতে পারেন 'মুছে ফেলা' অপারেটর.
বাক্য গঠন
|_+_|উদাহরণ
|_+_|অ্যারেগুলির গতিশীল মেমরি বরাদ্দ
আপনি যদি একজন প্রোগ্রামার হিসাবে; একই সিনট্যাক্সের সাহায্যে অক্ষরের একটি অ্যারের জন্য মেমরি বরাদ্দ করতে চান আপনি এটি করতে পারেন।
উদাহরণ
|_+_|নেমস্পেস আপনাকে গোষ্ঠীভুক্ত সত্তার অফার করে যা আছে বিশ্বব্যাপী সুযোগ সংকীর্ণ স্কোপের মধ্যে, তাদের প্রদান নামস্থানের সুযোগ . এটি নাম দ্বারা উল্লেখিত বিভিন্ন যৌক্তিক সুযোগে প্রোগ্রামের উপাদানগুলিকে সংগঠিত করার অনুমতি দেয়। একটি নেমস্পেস হল একটি বৈশিষ্ট্য যা C++ এ উপস্থিত এবং C তে নেই। একই নামের একাধিক নামস্থান ব্লক অনুমোদিত। ব্লকের মধ্যে সমস্ত ঘোষণা নামযুক্ত সুযোগে ঘোষণা করা হয়।
বাক্য গঠন
|_+_|উদাহরণ
|_+_|আউটপুট
|_+_|বিচ্ছিন্ন নামস্থান
একটি নামস্থানকে কয়েকটি অংশে সংজ্ঞায়িত করা হয় এবং একটি নামস্থান তার সংজ্ঞায়িত অংশগুলির সমষ্টি দ্বারা গঠিত হয়। নেমস্পেসের পৃথক অংশ একাধিক ফাইলে ছড়িয়ে আছে।
বাক্য গঠন
|_+_|নেস্টেড নেমস্পেস
এখানে আপনি অন্য নামের স্থানের ভিতরে একটি নামস্থান সংজ্ঞায়িত করতে পারেন
বাক্য গঠন
|_+_|উদাহরণ
|_+_|C++ টেমপ্লেট
টেমপ্লেটটি C++ এর একটি বৈশিষ্ট্য যা আপনাকে জেনেরিক প্রোগ্রাম লিখতে দেয়। অন্য পদে, আপনি টেমপ্লেট ব্যবহার করে বিভিন্ন ডেটা প্রকারের সাথে কাজ করার জন্য একটি একক ফাংশন বা একটি ক্লাস তৈরি করতে পারেন। টেমপ্লেটগুলি প্রোগ্রামগুলির কোড নমনীয়তা এবং পুনঃব্যবহারযোগ্যতার জন্য বৃহত্তর কোডবেসে ব্যবহৃত হয়।
এই ধারণা দুটি উপায়ে ব্যবহার করা হয়:
ফাংশন টেমপ্লেট
একটি ফাংশন টেমপ্লেট একটি সাধারণ ফাংশনের মতো কাজ করে, একটি মূল পার্থক্য সহ।
একটি একক ফাংশন টেমপ্লেট বিভিন্ন ডেটা প্রকারের সাথে কাজ করতে পারে, কিন্তু, একটি একক সাধারণ ফাংশন এক সেট ডেটা টাইপের সাথে কাজ করতে পারে।
সাধারণত, আপনি যদি একাধিক ধরণের ডেটাতে অভিন্ন ক্রিয়াকলাপ করতে চান, আপনি ফাংশন ঘোষণার সাথে ফাংশন তৈরি করতে ফাংশন ওভারলোডিং ব্যবহার করতে পারেন।
যদিও, ফাংশন টেমপ্লেটগুলি ব্যবহার করা একটি ভাল পদ্ধতি হবে কারণ আপনি কম এবং বজায় রাখার যোগ্য কোড লেখা একই কাজ সম্পাদন করতে পারেন।
উদাহরণ
|_+_|আউটপুট
|_+_|ক্লাস টেমপ্লেট
ফাংশন টেমপ্লেটের মতো, আপনি ক্লাস অপারেশনের জন্য ক্লাস টেমপ্লেট তৈরি করতে পারেন। সাধারণত, আপনাকে প্রতিটি ডেটা টাইপের জন্য একটি আলাদা ক্লাস তৈরি করতে হবে বা একক ক্লাসের মধ্যে অন্যান্য সদস্য ভেরিয়েবল এবং ফাংশন তৈরি করতে হবে।
এটি অপ্রয়োজনীয়ভাবে আপনার কোডবেসকে ফুলিয়ে তুলবে এবং বজায় রাখা কঠিন হবে, কারণ একটি ক্লাস/ফাংশনে পরিবর্তন অবশ্যই সব ক্লাস/ফাংশনে করতে হবে। যদিও ক্লাস টেমপ্লেটগুলি সমস্ত ডেটা প্রকারের জন্য একই কোড পুনরায় ব্যবহার করা সহজ করে তোলে।
উদাহরণ
|_+_|আউটপুট
|_+_|C++ প্রিপ্রসেসর
প্রিপ্রসেসর নির্দেশিকা হল প্রোগ্রামের কোডে হ্যাশ সাইন (#) এর আগে অন্তর্ভুক্ত লাইন। এই লাইনগুলি প্রোগ্রাম করা বিবৃতি নয় কিন্তু প্রিপ্রসেসরের জন্য নির্দেশাবলী। প্রিপ্রসেসর কোডের সংকলন শুরু হওয়ার আগে কোডটি পরীক্ষা করে এবং নিয়মিত বিবৃতিগুলি কোনও কোড তৈরি করার আগে সমস্ত নির্দেশগুলি সমাধান করে।
প্রিপ্রসেসর নির্দেশাবলী কোডের একক লাইন জুড়ে প্রসারিত। যত তাড়াতাড়ি নতুন লাইন অক্ষর পাওয়া যায়, প্রিপ্রসেসর নির্দেশ শেষ হয়।
প্রিপ্রসেসর নির্দেশাবলী 4 প্রধান ধরনের আছে:
ম্যাক্রো
ম্যাক্রো হল কোডের একটি অংশ যা কিছু নাম দেওয়া হয়। যখনই কম্পাইলার এই নামের মুখোমুখি হয়, এটি কোডের আসল অংশ দিয়ে নামটি প্রতিস্থাপন করে। একটি ম্যাক্রোকে সংজ্ঞায়িত করতে '#define' নির্দেশিকা ব্যবহার করা হয়।
উদাহরণ
|_+_|আউটপুট
|_+_|পূর্বনির্ধারিত C++ ম্যাক্রো
এটি প্রোগ্রামের লাইন নম্বর ধারণ করে যখন প্রোগ্রামটি কম্পাইল করা হচ্ছে।
এটি যখন কম্পাইল করা হচ্ছে তখন প্রোগ্রামটির বর্তমান ফাইলের নাম রয়েছে।
এটিতে স্ট্রিংটি রয়েছে যা বস্তুর কোডে সোর্স ফাইলের অনুবাদের তারিখ।
এটি ঘন্টা: মিনিট: সেকেন্ডের একটি স্ট্রিং ধারণ করে যা প্রোগ্রামটি কম্পাইল করা হয়েছিল।
ফাইল অন্তর্ভুক্তি
এই প্রিপ্রসেসর নির্দেশিকা কম্পাইলারকে প্রোগ্রামে একটি ফাইল অন্তর্ভুক্ত করতে বলে। দুই ধরনের ফাইল আছে যা ব্যবহারকারীর দ্বারা প্রোগ্রামে রাখা হয়:
শর্তাধীন সংকলন
এটি প্রোগ্রামের একটি নির্দিষ্ট অংশ কম্পাইল করতে বা কিছু শর্তের ভিত্তিতে প্রোগ্রামের কিছু নির্দিষ্ট অংশের সংকলন এড়িয়ে যেতে সাহায্য করে।
বাক্য গঠন
|_+_|অন্যান্য নির্দেশাবলী
উপরে উল্লিখিত নির্দেশাবলী ছাড়াও এখানে আরও দুটি নির্দেশ রয়েছে যা সাধারণত ব্যবহৃত হয় না। এইগুলো:
C++ সিগন্যাল হ্যান্ডলিং
সিগন্যাল হল সেই বাধা যা অপারেটিং সিস্টেম এমন একটি প্রক্রিয়ায় প্রদান করে যা একটি প্রোগ্রামকে সময়ের আগেই শেষ করে দেয়। UNIX-এ Ctrl+C চেপে, লিনাক্স , Mac OS X বা Windows মেশিন, আপনি বাধা তৈরি করতে পারেন।
এমন সংকেত রয়েছে যা সফ্টওয়্যার সনাক্ত করতে পারে না, তবে সিগন্যালের একটি তালিকা রয়েছে যা আপনি আপনার প্রোগ্রামে ধরতে পারেন এবং গ্রহণযোগ্য সংকেত-ভিত্তিক পদক্ষেপ নিতে পারেন। C++ হেডার ফাইল এই সংকেত বর্ণনা করে।
হ্যাঁ না | সংকেত | বর্ণনা |
এক | SIGFPE | একটি ভ্রান্ত গাণিতিক অপারেশন, যেমন একটি শূন্য বিরতি বা একটি ওভারফ্লো অপারেশন। |
দুই | SIGABRT | অস্বাভাবিক প্রোগ্রাম সমাপ্তি, যেমন বাতিল করার জন্য একটি কল। |
3 | SIGINT | ইন্টারেক্টিভ ফোকাসের একটি সংকেত প্রাপ্তি |
4 | সীল | একটি অবৈধ নির্দেশ আবিষ্কার. |
5 | SIGTERM | প্রোগ্রাম একটি সমাপ্তির অনুরোধ জমা. |
6 | SIGSEGV | অবৈধ ডিস্ক অ্যাক্সেস. |
সিগন্যাল() ফাংশন
সি++ সিগন্যাল হ্যান্ডলিং লাইব্রেরিতে অপ্রত্যাশিত ইভেন্টগুলিকে আটকানোর জন্য একটি সংকেত বৈশিষ্ট্য অন্তর্ভুক্ত রয়েছে।
বাক্য গঠন
|_+_|উদাহরণ
|_+_|আউটপুট
|_+_|raise() ফাংশন
raise() ফাংশনের সাহায্যে, যা একটি আর্গুমেন্ট হিসাবে একটি পূর্ণসংখ্যা সংকেত সংখ্যা নেয়, আপনি সংকেত তৈরি করতে পারেন।
বাক্য গঠন
|_+_|উদাহরণ
|_+_|আউটপুট
|_+_|মাল্টিথ্রেডিং হল একটি বিশেষ ধরনের মাল্টিটাস্কিং এবং যে ফাংশনটি আপনার মেশিনকে দুই বা ততোধিক প্রোগ্রাম একসাথে চালাতে সক্ষম করে সেটি হল একটি মাল্টিটাস্কিং ফাংশন। সাধারণভাবে দুই ধরনের মাল্টিটাস্কিং আছে: প্রক্রিয়া-ভিত্তিক এবং থ্রেড-ভিত্তিক। প্রোগ্রামগুলির সমান্তরাল সম্পাদন প্রক্রিয়া-ভিত্তিক মাল্টিটাস্কিং দ্বারা পরিচালিত হয়। থ্রেডের উপর ভিত্তি করে মাল্টিটাস্কিং একই প্রোগ্রামের অংশগুলির সমান্তরাল সম্পাদনের সাথে সম্পর্কিত। একটি মাল্টিথ্রেডেড প্রোগ্রামের দুটি বা তিনটি উপাদান রয়েছে যা একই সাথে চলবে।
বাক্য গঠন
|_+_|হ্যাঁ না | প্যারামিটার | বর্ণনা |
এক | রাগান্বিত | একটি একক বিবৃতি যা রুটিন-শুরুতে ফরোয়ার্ড করা যেতে পারে। এটি তুলনা করে অকার্যকর ধরনের একটি পয়েন্টার কাস্ট হিসাবে স্থানান্তর করা আবশ্যক. সরানোর কোন যুক্তি না থাকলে NULL ব্যবহার করা যেতে পারে। |
দুই | থ্রেড | একটি অস্বচ্ছ, বর্তমান থ্রেডের জন্য বিশেষ শনাক্তকারী যা সাবরুটিন ফেরত দেয়। |
3 | attr | একটি অদৃশ্য অবজেক্ট অ্যাট্রিবিউট যা থ্রেড অ্যাট্রিবিউট সেট করার জন্য ব্যবহার করা যেতে পারে। আপনি থ্রেড বৈশিষ্ট্য সহ একটি বস্তু সংজ্ঞায়িত করতে পারেন, অথবা ডিফল্ট মান সহ NULL। |
4 | শুরু_রুটিন | C++ রুটিন যা একবার প্রতিষ্ঠিত হলে, থ্রেডটি কার্যকর হবে। |
থ্রেড সমাপ্ত
POSIX থ্রেড বন্ধ করতে আমরা নিম্নলিখিত রুটিন ব্যবহার করি:
|_+_|এখানে, pthread exit একটি থ্রেড সরাসরি প্রস্থান করতে ব্যবহৃত হয়। সাধারণত, একবার থ্রেডের কাজ শেষ হয়ে গেলে এবং কাজ করার জন্য আর প্রয়োজন হয় না, pthread exit() রুটিন নামকরণ করা হয়।
যদি main() বন্ধ হয়ে যায় এবং pthread exit() দিয়ে প্রস্থান করে থ্রেড তৈরি করার আগে, অন্য থ্রেডগুলি চলতে শুরু করতে পারে। অন্যথায় main() শেষ হলে, সেগুলি অবিলম্বে বন্ধ হয়ে যাবে
থ্রেড এন্টারিং এবং ডিটাচিং
আমরা থ্রেড প্রবেশ বা অপসারণ করতে ব্যবহার করতে পারেন দুটি রুটিন অনুসরণ করা হয়.
|_+_|সাবরুটিন pthread join() 'threadid' থ্রেড বন্ধ না হওয়া পর্যন্ত কলিং থ্রেড ব্লক করে। এটির একটি বৈশিষ্ট্য নির্ধারণ করে যে এটি যোগযোগ্য বা বিচ্ছিন্ন কিনা যখন একটি থ্রেড গঠিত হয়। এটি শুধুমাত্র থ্রেড দ্বারা যোগ করা যেতে পারে যা যোগযোগ্য হিসাবে তৈরি হয়। একটি থ্রেড বিচ্ছিন্ন হিসাবে গঠিত হলে এটি যোগদান করা যাবে না.
C++ ওয়েব প্রোগ্রামিং
এবং CGI কি?
নির্দেশিকাগুলির একটি সংগ্রহ যা বর্ণনা করে যে কীভাবে ওয়েব সার্ভার এবং একটি কাস্টম স্ক্রিপ্টের মধ্যে তথ্য ভাগ করা হয় তা হল সাধারণ গেটওয়ে ইন্টারফেস বা CGI। বাহ্যিক গেটওয়ে সিস্টেমের জন্য, জেনেরিক গেটওয়ে ইন্টারফেস, বা CGI, HTTP সার্ভারের মতো তথ্য সার্ভারের সাথে ইন্টারফেস করার জন্য একটি মানক। CGI/1.1 হল সর্বশেষ সংস্করণ, এবং CGI/1.2 বিকাশাধীন।
ইন্টারনেটে ব্রাউজিং
আসুন দেখি CGI-এর ধারণা বোঝার জন্য আমরা একটি নির্দিষ্ট ওয়েব পৃষ্ঠা বা URL ব্রাউজ করার জন্য একটি হাইপারলিঙ্ক চাপলে কী হয়। আপনার ব্রাউজার দ্বারা HTTP ওয়েব সার্ভারের সাথে যোগাযোগ করা হয় এবং URL এর দাবি করে, যেমন ফাইলের নাম অনুসারে ফাইলের নাম। ওয়েব সার্ভার URL পার্স করে এবং একটি ফাইলের নাম খোঁজে। অনুরোধ করা ফাইলটি অবস্থিত থাকলে, ওয়েব সার্ভার ফাইলটিকে ব্রাউজারে ফিরিয়ে দেবে, অন্যথায়, এটি একটি ত্রুটি বার্তা পাঠাবে যে আপনি একটি অবৈধ ফাইলের অনুরোধ করেছেন৷
পপুলার গেটওয়ে ইন্টারফেস (CGI) হল একটি মৌলিক প্রোটোকল যা অ্যাপ্লিকেশনগুলিকে ওয়েব সার্ভার এবং ক্লায়েন্টদের সাথে যোগাযোগ করতে দেয়। এই CGI প্রোগ্রামগুলি Python, PERL, Shell, C বা C++ ইত্যাদিতে লেখা সম্ভব।
উদাহরণ
|_+_|ওয়েব সার্ভার কনফিগারেশন
নিশ্চিত করুন যে ওয়েব সার্ভার CGI প্রোগ্রামিং চালিয়ে যাওয়ার আগে CGI গ্রহণ করে এবং এটি CGI প্রোগ্রামগুলিকে সামঞ্জস্য করার জন্য ডিজাইন করা হয়েছে। HTTP সার্ভার যে CGI প্রোগ্রামগুলি চালায় তার অনেকগুলি একটি পূর্ব-কনফিগার করা ডিরেক্টরিতে অবস্থিত। এই ডিরেক্টরিটিকে একটি CGI ডিরেক্টরি বলা হয় এবং এটির নামকরণ করা হয় /var/www/cgi-bin। কনভেনশন অনুসারে CGI ফাইলগুলিতে .cgi হিসাবে এক্সটেনশন থাকবে, যদিও সেগুলি C++ এর সাথে এক্সিকিউটেবল।
HTTP হেডার
স্ট্রিং এর মধ্য দিয়ে যাওয়া কুকি কনফিগার করুন।
সম্পদের শেষ আপডেটের তারিখ।
প্রত্যাবর্তিত ডেটার দৈর্ঘ্য, বাইটে। একটি ফাইলের জন্য আনুমানিক লোডিং সময় রিপোর্ট করার জন্য, ব্রাউজার এই মান ব্যবহার করে।
একটি MIME স্ট্রিং যা স্ট্রিংয়ের বিন্যাস নির্দিষ্ট করে
অনুরোধ করা URL এর পরিবর্তে যে URLটি ফেরত দেওয়া উচিত। এই ফাইলটি অন্য ফাইলে একটি অনুরোধ পুনঃনির্দেশ করতে ব্যবহার করা হবে।
যেদিন ডেটা অকেজো হয়ে গেল। একটি ওয়েবসাইট রিফ্রেশ করতে হবে কিনা তা সিদ্ধান্ত নিতে ব্রাউজারের এটি ব্যবহার করা উচিত।
পরিবেশ পরিবর্তনশীল
GET এবং POST পদ্ধতি
আপনি যখন আপনার ব্রাউজার থেকে ওয়েবসার্ভারে এবং শেষ পর্যন্ত আপনার CGI অ্যাপ্লিকেশনে কোনও বিবরণ স্থানান্তর করার চেষ্টা করেন, তখন আপনাকে নির্দিষ্ট পরিস্থিতিতে আসতে হবে। ওয়েব সার্ভারে এই তথ্য স্থানান্তর করার জন্য ব্রাউজার দ্বারা সাধারণত দুটি পদ্ধতি ব্যবহার করা হয়। এই পদ্ধতিগুলি হল GET পদ্ধতি এবং POST পদ্ধতি।
ইউআরএল উদাহরণ পান পদ্ধতি
|_+_|কুকিজ ব্যবহার করে
HTTP প্রোটোকল হল একটি প্রোটোকল যা রাষ্ট্রহীন। কিন্তু একটি বাণিজ্যিক ওয়েবসাইটের জন্য বিভিন্ন সাইটের মধ্যে সেশন ডেটা ধরে রাখা গুরুত্বপূর্ণ। একটি ব্যবহারকারীর নিবন্ধন, উদাহরণস্বরূপ, বেশ কয়েকটি পৃষ্ঠা সম্পূর্ণ হওয়ার পরে শেষ হয়। কিন্তু কিভাবে সমস্ত ওয়েব সাইট জুড়ে ব্যবহারকারীর জন্য সেশনের বিবরণ রাখা যায়। আগ্রহ, বিক্রয়, কমিশন এবং উন্নত ভিজিটর অভিজ্ঞতা বা সাইটের পরিসংখ্যানের জন্য প্রয়োজনীয় অন্যান্য বিবরণ মনে রাখা এবং নিরীক্ষণ করার সবচেয়ে নির্ভরযোগ্য উপায় হল নির্দিষ্ট কিছু ক্ষেত্রে কুকিজ ব্যবহার করা।
একটি কুকি আকারে, আপনার সার্ভার ভিজিটর উইন্ডোতে কিছু ডেটা স্থানান্তর করে। কুকি ব্রাউজার দ্বারা অনুমোদিত হবে. যদি এটি হয়ে থাকে, এটি একটি সাধারণ পাঠ্য সংরক্ষণাগার হিসাবে দর্শকের হার্ড ড্রাইভে সংরক্ষিত হয়। ব্যবহারকারী আপনার ওয়েবে অন্য পৃষ্ঠায় আঘাত করলে এখন কুকি পুনরুদ্ধারের জন্য প্রস্তুত। পুনরুদ্ধার করা হলে, যা সংরক্ষিত ছিল সার্ভার দ্বারা পরিচিত/মনে রাখা হয়।
উদাহরণ ফাইল আপলোড
|_+_|উপসংহার
এর সাথে আমরা এই C++ টিউটোরিয়ালের শেষে চলে এসেছি। আশা করি এটি আপনাকে C++ প্রোগ্রামিং সম্পর্কে বুনিয়াদি বুঝতে সাহায্য করেছে।