Chuyển đổi loại C ++

Trong hướng dẫn này, chúng ta sẽ tìm hiểu những kiến ​​thức cơ bản về chuyển đổi kiểu C ++ với sự trợ giúp của các ví dụ.

C ++ cho phép chúng ta chuyển đổi dữ liệu của một kiểu này sang kiểu khác. Đây được gọi là chuyển đổi kiểu.

Có hai kiểu chuyển đổi kiểu trong C ++.

  1. Chuyển đổi ngầm định
  2. Chuyển đổi rõ ràng (còn được gọi là Truyền kiểu)

Chuyển đổi kiểu ngầm định

Việc chuyển đổi kiểu được thực hiện tự động bởi trình biên dịch được gọi là chuyển đổi kiểu ngầm định. Loại chuyển đổi này còn được gọi là chuyển đổi tự động.

Chúng ta hãy xem xét hai ví dụ về chuyển đổi kiểu ngầm định.

Ví dụ 1: Chuyển đổi từ int sang double

 // Working of implicit type-conversion #include using namespace std; int main() ( // assigning an int value to num_int int num_int = 9; // declaring a double type variable double num_double; // implicit conversion // assigning int value to a double variable num_double = num_int; cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; )

Đầu ra

 num_int = 9 num_double = 9

Trong chương trình, chúng tôi đã gán một intdữ liệu cho một doublebiến.

 num_double = num_int;

Ở đây, intgiá trị được doubletrình biên dịch tự động chuyển đổi thành trước khi nó được gán cho biến num_double. Đây là một ví dụ về chuyển đổi kiểu ngầm định.

Ví dụ 2: Chuyển đổi tự động từ double sang int

 //Working of Implicit type-conversion #include using namespace std; int main() ( int num_int; double num_double = 9.99; // implicit conversion // assigning a double value to an int variable num_int = num_double; cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; )

Đầu ra

 num_int = 9 num_double = 9,99

Trong chương trình, chúng tôi đã gán một doubledữ liệu cho một intbiến.

 num_double = num_int;

Ở đây, doublegiá trị được inttrình biên dịch tự động chuyển đổi thành trước khi nó được gán cho biến num_int. Đây cũng là một ví dụ về chuyển đổi kiểu ngầm định.

Lưu ý:intkhông thể có phần thập phân, các chữ số sau dấu thập phân được cắt bớt trong ví dụ trên.

Mất dữ liệu trong quá trình chuyển đổi (Chuyển đổi thu hẹp)

Như chúng ta đã thấy từ ví dụ trên, việc chuyển đổi từ kiểu dữ liệu này sang kiểu dữ liệu khác rất dễ bị mất dữ liệu. Điều này xảy ra khi dữ liệu của loại lớn hơn được chuyển đổi thành dữ liệu của loại nhỏ hơn.

Dữ liệu có thể mất trong quá trình chuyển đổi loại

Chuyển đổi rõ ràng C ++

Khi người dùng thay đổi dữ liệu từ loại này sang loại khác theo cách thủ công, đây được gọi là chuyển đổi rõ ràng . Kiểu chuyển đổi này còn được gọi là kiểu đúc .

Có ba cách chính mà chúng ta có thể sử dụng chuyển đổi rõ ràng trong C ++. Họ đang:

  1. Kiểu đúc kiểu C (còn được gọi là ký hiệu đúc )
  2. Ký hiệu hàm (còn được gọi là kiểu truyền kiểu C ++ cũ )
  3. Nhập toán tử chuyển đổi

Đúc loại kiểu C

Như tên cho thấy, loại đúc được ưa chuộng bởi các ngôn ngữ lập trình C . Nó còn được gọi là ký hiệu đúc .

Cú pháp cho kiểu này là:

 (data_type)expression;

Ví dụ,

 // initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = (double)num_int;

Đúc kiểu chức năng

Chúng ta cũng có thể sử dụng hàm như ký hiệu để truyền dữ liệu từ kiểu này sang kiểu khác.

Cú pháp cho kiểu này là:

 data_type(expression);

Ví dụ,

 // initializing int variable int num_int = 26; // declaring double variable double num_double; // converting from int to double num_double = double(num_int);

Ví dụ 3: Loại Truyền

 #include using namespace std; int main() ( // initializing a double variable double num_double = 3.56; cout << "num_double = " << num_double << endl; // C-style conversion from double to int int num_int1 = (int)num_double; cout << "num_int1 = " << num_int1 << endl; // function-style conversion from double to int int num_int2 = int(num_double); cout << "num_int2 = " << num_int2 << endl; return 0; )

Đầu ra

 num_double = 3.56 num_int1 = 3 num_int2 = 3

Chúng tôi sử dụng cả C phong cách chuyển đổi loạiđúc chức năng kiểu cho loại hình chuyển đổi và hiển thị kết quả. Vì chúng thực hiện cùng một nhiệm vụ nên cả hai đều cho chúng ta cùng một đầu ra.

Loại toán tử chuyển đổi

Bên cạnh hai kiểu đúc này, C ++ còn có bốn toán tử để chuyển đổi kiểu. Chúng được gọi là toán tử chuyển đổi kiểu . Họ đang:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

Chúng ta sẽ tìm hiểu về các phôi này trong các bài hướng dẫn sau.

Hướng dẫn được đề xuất:

  • Chuỗi C ++ thành int và ngược lại
  • Chuỗi C ++ thành float, double và ngược lại

thú vị bài viết...