কম্পিউটার

ব্লক ধরুন এবং C++ এ রূপান্তর টাইপ করুন


এই বিভাগে, আমরা দেখব কিভাবে ব্যতিক্রম পরিচালনার জন্য ক্যাচ ব্লক ব্যবহার করতে হয় এবং C++ এ টাইপ রূপান্তর করতে হয়।

প্রথমে, আসুন আমরা একটি কোড দেখি, এবং আমরা দেখব আউটপুট কি হবে এবং কিভাবে তারা তৈরি করছে।

উদাহরণ

#include <iostream>
using namespace std;
int main() {
   try{
      throw 'a';
   }
   catch(int a) {
      cout << "Integer value is caught :" << a;
   }
   catch(...) {
      cout << "Entering into default catch block";
   }
}

আউটপুট

Entering into default catch block

তাহলে এর পেছনের কারণ কী। কেন এই ধরনের আউটপুট উৎপন্ন হয়? আমরা দেখতে পাচ্ছি অক্ষর 'a' নিক্ষেপ করা হয়েছে, কিন্তু প্রথম ক্যাচ ব্লকটি int-এর জন্য। যদি আমরা মনে করি যে 'a'-এর ASCII একটি পূর্ণসংখ্যা, তাই প্রথম ব্লকে প্রবেশ করা হবে, কিন্তু এই ধরনের রূপান্তরগুলি ক্যাচ ব্লকের জন্য প্রযোজ্য নয়৷

আরেকটি উদাহরণ দেখা যাক। এই উদাহরণে আমরা দেখতে পাব যে রূপান্তর কনস্ট্রাক্টরকে নিক্ষেপ করা বস্তুর জন্য বলা হয় না।

উদাহরণ

#include <iostream>
using namespace std;
class TestExcept1 {};
class TestExcept2 {
   public:
      TestExcept2 (const TestExcept1 &e ){ // Defining the Conversion constructor
         cout << "From the Conversion constructor";
      }
};
main() {
   try{
      TestExcept1 exp1;
      throw exp1;
   } catch(TestExcept2 e2) {
      cout << "Caught TestExcept2 " << endl;
   } catch(...) {
      cout << "Entering into default catch block " << endl;
   }
}

আউটপুট

Entering into default catch block

প্রাপ্ত টাইপ অবজেক্টগুলিকে বেস টাইপ অবজেক্টে রূপান্তরিত করা হয় না যখন ডেরাইভ টাইপ অবজেক্টগুলি নিক্ষেপ করা হয়।


  1. ফ্লিপ-ফ্লপ প্রকার এবং C++ এ তাদের রূপান্তর

  2. C++ এ অটো এবং ডিক্লটাইপ কি?

  3. C++ এ ভেরিয়েবল এবং ভেরিয়েবলের ধরন কি কি?

  4. পাইথন ডেটা টাইপ এবং টাইপ কনভার্সন