Chuyển đổi loại, ngầm định 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 <iostream>
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 <iostream>
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 ý: Vì intkhông thể có phần thập phân, các chữ số sau dấu thập phân bị 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 một loại lớn hơn được chuyển đổi thành dữ liệu của một 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. Đúc kiểu 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 chức năng 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 <iostream>

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 và đú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.









Gõ tìm kiếm nhanh...