একটি কাস্ট হল একটি বিশেষ অপারেটর যা একটি ডেটা প্রকারকে অন্যটিতে রূপান্তর করতে বাধ্য করে৷ একজন অপারেটর হিসাবে, একটি কাস্ট ইউনারী এবং অন্য যেকোন ইউনারি অপারেটরের মতোই একই অগ্রাধিকার রয়েছে৷
অধিকাংশ C++ কম্পাইলার দ্বারা সমর্থিত সর্বাধিক সাধারণ কাস্ট নিম্নরূপ -
(type) expression
যেখানে টাইপটি পছন্দসই ডেটা টাইপ। C++ দ্বারা সমর্থিত অন্যান্য কাস্টিং অপারেটর রয়েছে, সেগুলি নীচে তালিকাভুক্ত করা হয়েছে −
- const_cast
(expr) - const_cast অপারেটরটি একটি কাস্টে স্পষ্টভাবে const এবং/অথবা উদ্বায়ীকে ওভাররাইড করতে ব্যবহৃত হয়। টার্গেট টাইপ অবশ্যই সোর্স টাইপের মতই হতে হবে, এর কনস্ট বা উদ্বায়ী বৈশিষ্ট্যের পরিবর্তন ছাড়া। এই ধরনের কাস্টিং পাস করা অবজেক্টের কন্সট অ্যাট্রিবিউটকে হেরফের করে, হয় সেট করা বা অপসারণ করা। - dynamic_cast
(expr) − dynamic_cast একটি রানটাইম কাস্ট করে যা কাস্টের বৈধতা যাচাই করে। যদি কাস্ট করা না যায়, কাস্ট ব্যর্থ হয় এবং অভিব্যক্তিটি শূন্য হয়ে যায়। একটি ডায়নামিক_কাস্ট পলিমরফিক প্রকারের উপর কাস্ট করে এবং একটি A* পয়েন্টারকে B* পয়েন্টারে কাস্ট করতে পারে শুধুমাত্র যদি বস্তুটি আসলে একটি B অবজেক্টের দিকে নির্দেশ করা হয়। - reinterpret_cast
(expr) - reinterpret_cast অপারেটর একটি পয়েন্টারকে অন্য যেকোনো ধরনের পয়েন্টারে পরিবর্তন করে। এটি পয়েন্টার থেকে একটি পূর্ণসংখ্যা টাইপ এবং তদ্বিপরীতভাবে কাস্ট করার অনুমতি দেয়৷ - static_cast
(expr) − স্ট্যাটিক_কাস্ট অপারেটর একটি ননপলিমরফিক কাস্ট সম্পাদন করে। উদাহরণস্বরূপ, এটি একটি বেস ক্লাস পয়েন্টারকে একটি প্রাপ্ত ক্লাস পয়েন্টারে কাস্ট করতে ব্যবহার করা যেতে পারে।
উদাহরণ
এই কাস্টগুলি খুব কেস নির্দিষ্ট৷ কম্পাইলার -
দ্বারা বাস্তবায়িত কাস্ট সহ একটি উদাহরণ বিবেচনা করা যাক#include <iostream> using namespace std; main() { double a = 21.09399; float b = 10.20; int c ; c = (int) a; cout << "Line 1 - Value of (int)a is :" << c << endl ; c = (int) b; cout << "Line 2 - Value of (int)b is :" << c << endl ; return 0; }
আউটপুট
এটি আউটপুট দেবে −
Line 1 - Value of (int)a is :21 Line 2 - Value of (int)b is :10