কম্পিউটার

C++ এ স্পষ্ট কীওয়ার্ডের ব্যবহার


এখানে আমরা C++ এ স্পষ্ট কীওয়ার্ডের প্রভাব কী হবে তা দেখব। এটি নিয়ে আলোচনা করার আগে, আসুন আমরা একটি উদাহরণ কোড দেখি, এবং এর আউটপুট খুঁজে বের করার চেষ্টা করি।

উদাহরণ

#include <iostream>
using namespace std;
class Point {
   private:
      double x, y;
   public:
      Point(double a = 0.0, double b = 0.0) : x(a), y(b) {
         //constructor
      }
      bool operator==(Point p2) {
         if(p2.x == this->x && p2.y == this->y)
         return true;
         return false;
      }
};
int main() {
   Point p(5, 0);
   if(p == 5)
      cout << "They are same";
   else
      cout << "They are not same";
}

আউটপুট

They are same

এটি সূক্ষ্ম কাজ করছে কারণ আমরা জানি যে যদি একটি কনস্ট্রাক্টরকে শুধুমাত্র একটি আর্গুমেন্ট ব্যবহার করে কল করা যায়, তাহলে এটি রূপান্তর কনস্ট্রাক্টরে রূপান্তরিত হবে। কিন্তু আমরা এই ধরনের রূপান্তর এড়াতে পারি, কারণ এটি কিছু অবিশ্বাস্য ফলাফল তৈরি করতে পারে।

এই রূপান্তর সীমাবদ্ধ করতে, আমরা কনস্ট্রাক্টরের সাথে স্পষ্ট পরিবর্তনকারী ব্যবহার করতে পারি। সেই ক্ষেত্রে, এটি রূপান্তরিত হবে না। যদি উপরের প্রোগ্রামটি স্পষ্ট কীওয়ার্ড ব্যবহার করে ব্যবহার করা হয়, তাহলে এটি সংকলন ত্রুটি তৈরি করবে।

উদাহরণ

#include <iostream>
using namespace std;
class Point {
   private:
      double x, y;
   public:
      explicit Point(double a = 0.0, double b = 0.0) : x(a), y(b) {
         //constructor
      }
      bool operator==(Point p2) {
         if(p2.x == this->x && p2.y == this->y)
         return true;
         return false;
      }
};
int main() {
   Point p(5, 0);
   if(p == 5)
      cout << "They are same";
   else
      cout << "They are not same";
}

আউটপুট

[Error] no match for 'operator==' (operand types are 'Point' and 'int')
[Note] candidates are:
[Note] bool Point::operator==(Point)

আমরা এখনও স্পষ্ট কাস্টিং ব্যবহার করে পয়েন্ট টাইপের একটি মান টাইপকাস্ট করতে পারি।

উদাহরণ

#include <iostream>
using namespace std;
class Point {
   private:
      double x, y;
   public:
      explicit Point(double a = 0.0, double b = 0.0) : x(a), y(b) {
         //constructor
      }
      bool operator==(Point p2) {
         if(p2.x == this->x && p2.y == this->y)
         return true;
         return false;
      }
};
int main() {
   Point p(5, 0);
   if(p == (Point)5)
      cout << "They are same";
   else
      cout << "They are not same";
}

আউটপুট

They are same

  1. C++ এ অ্যারেতে একটি পার্টিশন পয়েন্ট খুঁজুন

  2. C++ এ জটিল সংখ্যা ব্যবহার করে জ্যামিতি

  3. একটি বিন্দুর ঘূর্ণন C++ এ অন্য একটি বিন্দুতে

  4. কেন আমরা C# এ অভ্যন্তরীণ কীওয়ার্ড ব্যবহার করি?