khóa đào tạo và huấn luyện Lập trình lập trình C++ khóa huấn luyện và đào tạo lập trình C++ căn phiên bản Ép mẫu mã tường minh trong C++ (Explicit type conversion in C++)

Dẫn nhập

Ở bài học trước, chúng ta đã vắt được tổng quan tiền về nghiền kiểu tài liệu và kỹ thuật ÉP KIỂU NGẦM ĐỊNH trong C++ (Implicit type conversion).

Bạn đang xem: Tương thích kiểu

Hôm nay, mình sẽ phân tách sẽ thêm một cách ép kiểu dữ liệu thứ 2, chính là Ép hình trạng tường minh trong C++ (Explicit type conversion).

Nội dung

Để hiểu hiểu bài này xuất sắc nhất các bạn nên có kiến thức cơ bản về những phần:

Trong bài ta vẫn cùng tò mò các vấn đề:

Ép hình dáng tường minh vào C++ (Explicit type conversion)

Ép thứ hạng tường minh trong C++ (Explicit type conversion)

Trong bài ÉP KIỂU NGẦM ĐỊNH vào C++ (Implicit type conversion), các bạn đã biết trong một trong những trường hợp, trình biên dịch đã ngầm chuyển đổi một cực hiếm từ kiểu dữ liệu này quý phái kiểu tài liệu khác. Khi muốn biến hóa một quý giá sang giao diện dữ liệu tựa như có miền giá trị khủng hơn, ép giao diện ngầm định cần được sử dụng.

Trong một vài trường hợp, bạn sẽ gặp cái lệnh như sau:

double d = 3 / 2;Giá trị 3 cùng 2 là nhị số nguyên, cần sẽ không tồn tại ép hình dạng ngầm định (Implicit type conversion) trong biểu thức này, hiệu quả 3 / 2 là 1, kế tiếp 1 được biến đổi ngầm định thành 1.0 với gán cho biến d.

Để khắc phục và hạn chế trường thích hợp này, bạn có thể chuyển đổi giá trị 1 trong các 2 toán hạng thành số chấm động (3.0 hoặc 2.0) nhằm có kết quả đúng đến biểu thức:

double d1 = 3.0 / 2;// Hoặcdouble d2 = 3 / 2.0;Xét lấy ví dụ như tương tự, nhưng lại 2 toán hạng của doanh nghiệp là 2 biến:

int n1 = 3;int n2 = 2;double d = n1 / n2;Trong trường vừa lòng này, bạn phải sử dụng chuyên môn Ép vẻ bên ngoài tường minh (Explicit type conversion) để trình biên dịch có thể hiểu và biến đổi kiểu dữ liệu theo ý của bạn.

Ép kiểu dáng tường minh (Explicit type conversion) là vượt trình đổi khác kiểu tài liệu một bí quyết tường minh (rõ ràng) vì chưng lập trình viên, sử dụng toán tử ép hình dáng (casting operator) để thực hiện việc chuyển đổi.

Trong C++, bao gồm 5 phương pháp ép kiểu tường minh:

C-style castsStatic castsConst castsDynamic castsReinterpret casts

Phạm vi bài học này sẽ nói về C-style casts Static casts, 2 cách phổ cập nhất vào C++.

Dynamic casts, Const casts Reinterpret casts cần những kiến thức chuyên sâu hơn, nên sẽ tiến hành bỏ qua trong bài học kinh nghiệm này.

C-style casts

Trong ngôn ngữ C chuẩn, ép giao diện được triển khai thông qua toán tử (), với tên kiểu dữ liệu cần đưa được đặt bên trong.

Xem thêm: Manh Mối Cuối Cùng - Phim Hành Động Mỹ Hay Nhất 2021

Ví dụ:

#include using namespace std;int main(){int n1 = 3;int n2 = 2;double d = (double)n1 / n2;cout Outputs:

*

Trong công tác trên, trình biên dịch (compiler) đổi khác biến n1 từ hình dạng int sang phong cách double trải qua ép dạng hình tường minh C-style. Tiếp đến biểu thức có 2 toán hạng tất cả kiểu double và kiểu int, yêu cầu toán hạng loại int đã được biến đổi ngầm định sang vẻ bên ngoài double. Vày vậy, công dụng của biểu thức là phép chia giữa 2 số chấm rượu cồn kiểu double.

Ngôn ngữ C++ chất nhận được thực hiện nay ép kiểu dáng tường minh C-style với cú pháp như một lời gọi hàm:

int n1 = 3;int n2 = 2;double d = double(n1) / n2;Ép vẻ bên ngoài tường minh C-style ko được trình biên dịch (compiler) kiểm tra tại thời khắc biên dịch (compile time), cần trình biên dịch sẽ không còn đưa ra mọi cảnh báo một trong những trường hợp thay đổi không đúng

Chú ý: Tránh sử dụng ép dạng hình tường minh C-style.

static_cast

Ngôn ngữ C++ có một toán tử nghiền kiểu điện thoại tư vấn là static_cast. Các bạn đã nghe biết nó trong bài KIỂU KÝ TỰ trong C++ (Character):

#include #include // for std::setprecision()using namespace std;int main(){int n 75 ;cout (n) (ch) Outputs:

*

Chương trình trên sử dụng toán tử ép hình trạng static cast vào C++ để in một cam kết tự từ một số trong những nguyên cùng ngược lại.

Sử dụng static cast vào biểu thức:

Ví dụ:

#include using namespace std;int main(){int n1 = 3;int n2 = 2;double d = static_cast(n1) / n2;cout Outputs:

*

Ưu điểm của toán tử static_cast là nó yêu mong compiler đánh giá kiểu tài liệu tại thời gian biên dịch chương trình, giảm bớt được hồ hết lỗi bên cạnh ý muốn.

Chú ý: Nên thực hiện toán tử static_cast thay vị ép hình dạng C-style.

Kết luận

Qua bài học này, bạn đã nắm được phương pháp Ép hình dạng tường minh trong C++ (Explicit type conversion).

Ở bài xích tiếp theo, mình sẽ phân tách sẽ cho các bạn về function trong bài CƠ BẢN VỀ HÀM & GIÁ TRỊ TRẢ VỀ (Basics of Functions và Return values).

Cảm ơn chúng ta đã theo dõi bài bác viết. Hãy nhằm lại bình luận hoặc góp ý của chính bản thân mình để phạt triển nội dung bài viết tốt hơn. Đừng quên “Luyện tập – thử thách – không lo ngại khó”.

Thảo luận

Nếu chúng ta có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng e dè đặt thắc mắc trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện canhorichstartanphu.com.com để cảm nhận sự hỗ trợ từ cộng đồng.