Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Memahami Konversi Tipe C++: Teknik Implisit, Eksplisit, dan Casting

Konversi Tipe C++

Jelajahi bagaimana C++ menangani perubahan tipe data, dari konversi otomatis hingga teknik casting yang aman, dengan contoh kode praktis.

C++ memungkinkan Anda mengubah nilai dari satu tipe ke tipe lain—proses yang disebut konversi tipe. Memahami aturan di balik konversi ini membantu Anda menulis kode yang lebih jelas dan lebih aman.

Ada dua kategori utama:

  1. Konversi implisit (otomatis)
  2. Konversi eksplisit (type casting)

Konversi Tipe Implisit

Ketika kompiler secara otomatis mempromosikan atau menurunkan nilai ke tipe yang kompatibel, itu adalah konversi implisit. Ini terjadi di balik layar, jadi Anda tidak melihat cast dalam kode sumber Anda.

Contoh 1: int >> double

#include <iostream> using namespace std; int main() { int num_int = 9; double num_double = num_int; // konversi implisit cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; }

Output

num_int = 9 num_double = 9

Kompiler memperluas int menjadi double secara otomatis sebelum penugasan.

Contoh 2: double >> int (pemotongan)

#include <iostream> using namespace std; int main() { double num_double = 9.99; int num_int = num_double; // konversi implisit cout << "num_int = " << num_int << endl; cout << "num_double = " << num_double << endl; return 0; }

Output

num_int = 9 num_double = 9.99

Karena int tidak memiliki bagian pecahan, komponen desima dibuang—contoh konversi sempit.

Tips: Mengonversi dari tipe yang lebih lebar ke tipe yang lebih sempit dapat kehilangan presisi. Selalu eksplisit ketika kehilangan itu penting.

Konversi Sempit dan Kehilangan Data

Ketika tipe yang lebih besar ditugaskan ke tipe yang lebih kecil, kompiler mungkin memotong data. Memvisualisasikan ketidaksesuaian rentang membantu mencegah bug yang tidak terduga.

Memahami Konversi Tipe C++: Teknik Implisit, Eksplisit, dan Casting

Konversi Eksplisit (Type Casting)

Ketika Anda perlu mengontrol konversi, Anda menggunakan cast eksplisit. C++ menawarkan beberapa sintaks untuk mencapai tujuan yang sama, masing-masing dengan pedoman gaya sendiri.

  1. Notasi cast gaya C
  2. Cast gaya fungsi (gaya C++ lama)
  3. Cast C++ modern: static_cast, dynamic_cast, const_cast, reinterpret_cast

Type Casting Gaya C

Bentuk tradisional ini diwarisi dari C:

(data_type)expression;

Contoh:

#include <iostream> using namespace std; int main() { int num_int = 26; double num_double = (double)num_int; // cast gaya C cout << "num_double = " << num_double << endl; return 0; }

Casting Gaya Fungsi

Alternatif yang lebih eksplisit yang terlihat seperti panggil konstruktor:

data_type(expression);

Contoh:

#include <iostream> using namespace std; int main() { int num_int = 26; double num_double = double(num_int); // cast gaya fungsi cout << "num_double = " << num_double << endl; return 0; }

Kedua Cast Gaya C dan Gaya Fungsi

#include <iostream> using namespace std; int main() { double num_double = 3.56; cout << "num_double = " << num_double << endl; int num_int1 = (int)num_double; // gaya C int num_int2 = int(num_double); // gaya fungsi cout << "num_int1 = " << num_int1 << endl; cout << "num_int2 = " << num_int2 << endl; return 0; }

Output

num_double = 3.56 num_int1 = 3 num_int2 = 3

Kedua cast menghasilkan hasil yang sama, tetapi cast gaya fungsi disukai dalam C++ modern karena lebih jelas dan kurang rentan kesalahan.

Operator Cast C++ Modern

Di luar bentuk klasik, C++ menawarkan empat operator cast khusus yang memberikan keamanan tipe dan niat yang lebih baik:

Kami akan menyelami masing-masing dalam tutorial khusus.


Tutorial yang direkomendasikan:

Bahasa C

  1. Menguasai Konversi Tipe C#: Implisit, Eksplisit, Parse, dan Metode Convert
  2. Memahami Tipe Data C++: Dasar, Modifikasi, dan Praktik Terbaik
  3. Menguasai Operator C++: Panduan Lengkap dengan Contoh Praktis
  4. Komentar C++: Praktik Terbaik untuk Kode yang Mudah Dibaca dan Dipelihara
  5. Menguasai Template Kelas C++: Panduan Praktis
  6. Menguasai Konversi & Casting Tipe Python: Panduan Komprehensif
  7. Menguasai Angka, Konversi Tipe, dan Matematika di Python
  8. Menguasai Tipe Data Char C++: Deklarasi, ASCII, dan Teknik Konversi
  9. Bahasa Pemrograman C++: Tinjauan & Fitur Utama
  10. Tipe Variabel C++ Dijelaskan: Memori, Batas, dan Operasi