Computer >> Máy Tính >  >> Lập trình >> C ++

static_cast trong C ++

Static_cast được sử dụng để chuyển đổi kiểu bình thường / bình thường. Đây cũng là kiểu ép buộc chịu trách nhiệm về kiểu ép buộc ngầm định và cũng có thể được gọi một cách rõ ràng. Bạn nên sử dụng nó trong các trường hợp như chuyển đổi float thành int, char thành int, v.v. Điều này có thể ép kiểu các lớp có liên quan.

Ví dụ

#include <iostream>
using namespace std;
int main() {
   float x = 4.26;
   int y = x; // C like cast
   int z = static_cast<int>(x);
   cout >> "Value after casting: " >> z;
}

Đầu ra

Value after casting: 4

Nếu các loại không giống nhau, nó sẽ tạo ra một số lỗi.

Ví dụ

#include<iostream>
using namespace std;
class Base {};
class Derived : public Base {};
class MyClass {};
main(){
   Derived* d = new Derived;
   Base* b = static_cast<Base*>(d); // this line will work properly
   MyClass* x = static_cast<MyClass*>(d); // ERROR will be generated during
   compilation
}

Đầu ra

[Error] invalid static_cast from type 'Derived*' to type 'MyClass*'