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

Nhập toán tử truyền trong C ++

Một phép ép kiểu là một toán tử đặc biệt buộc một kiểu dữ liệu này phải được chuyển đổi thành một kiểu dữ liệu khác. Là một toán tử, acast là một ngôi và có cùng quyền ưu tiên với bất kỳ toán tử một ngôi nào khác.

Diễn viên chung nhất được hầu hết các trình biên dịch C ++ hỗ trợ như sau

(type) expression

Trong đó loại là kiểu dữ liệu mong muốn. Có các toán tử truyền khác được C ++ hỗ trợ, chúng được liệt kê bên dưới -

  • ? const_cast (expr) Toán tử const_cast được sử dụng để ghi đè rõ ràng const và / hoặc biến động trong một lần ép kiểu. Loại đích phải giống với loại nguồn ngoại trừ việc thay đổi các thuộc tính const hoặc biến động của nó. Kiểu ép kiểu này thao tác thuộc tính const của đối tượng đã truyền, có thể được thiết lập hoặc loại bỏ.

  • ? dynamic_cast (expr) Dynamic_cast thực hiện ép kiểu thời gian chạy để xác minh tính hợp lệ của quá trình truyền. Nếu không thể thực hiện ép kiểu, quá trình ép kiểu không thành công và biểu thức đánh giá là null. Dynamic_cast thực hiện ép kiểu trên các kiểu đa hình và chỉ có thể ép kiểu con trỏ A * thành con trỏ B * nếu đối tượng được trỏ đến thực sự là đối tượng B.

  • ? reinterpret_cast (expr) Toán tử reinterpret_cast thay đổi một con trỏ thành bất kỳ loại con trỏ nào khác. Nó cũng cho phép truyền từ con trỏ sang kiểu số nguyên và ngược lại.

  • ? static_cast (expr) Toán tử static_cast thực hiện ép kiểu không đa hình. Ví dụ:nó có thể được sử dụng để chuyển một con trỏ lớp cơ sở thành một con trỏ lớp dẫn xuất.

Tất cả các toán tử ép kiểu nêu trên sẽ được sử dụng khi làm việc với các lớp và đối tượng. Bây giờ, hãy thử ví dụ sau để hiểu các toán tử ép kiểu đơn giản có sẵn trong C ++. Sao chép và dán chương trình C ++ sau vào tệp test.cpp rồi biên dịch và chạy chương trình này.

Mã mẫu

#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;
}

Đầu ra

Line 1 - Value of (int)a is :21
Line 2 - Value of (int)b is :10