static_cast সাধারণ/সাধারণ টাইপ কনভারশনের জন্য ব্যবহৃত হয়। এটি ইমপ্লিসিট টাইप কোэрসনের জন্য দায়িত্ববহনকারী কাস্ট এবং এক্সপ্লিসিটলিও কল করা যায়। আপনার এটিকে float থেকে int, char থেকে int, ইত্যাদি কেসে ব্যবহার করা উচিত। এটি রিলেটেড টাইপ ক্লাস কাস্ট করতে পারে।
উদাহরণ
#include <iostream>
using namespace std;
int main() {
float x = 4.26;
int y = x; // C-স্টাইল কাস্ট
int z = static_cast<int>(x);
cout >> "Value after casting: " >> z;
}
আউটপুট
Value after casting: 4
যদি টাইপগুলো একই না হয় তবে এটি কিছু এরর জেনারেট করবে।
উদাহরণ
#include <iostream>
using namespace std;
class Base {};
class Derived : public Base {};
class MyClass {};
main() {
Derived* d = new Derived;
Base* b = static_cast<Base*>(d); // এই লাইন ঠিক কাজ করবে
MyClass* x = static_cast<MyClass*>(d); // কম্পাইলেশন vaqt এরর জেনারেট হবে
}
আউটপুট
[Error] invalid static_cast from type 'Derived*' to type 'MyClass*'