Teknologi

Konversi Jenis – Kelas ke Kelas

Sekarang kita telah memahami cara mengubah tipe data dasar ke tipe kelas dan sebaliknya, sekarang saatnya untuk mempelajari cara mengonversi objek dari satu tipe kelas ke tipe kelas lainnya.

Konversi antara objek dari kelas yang berbeda dapat dilakukan dengan menggunakan konstruktor satu argumen atau fungsi konversi . Pilihannya tergantung pada apakah rutin konversi harus dideklarasikan di kelas sumber atau di kelas tujuan. Sebagai ilustrasi, pertimbangkan sebuah program yang berisi dua kelas: A dan B . Perhatikan juga pernyataan:

objek_A = objek_B;

Dalam pernyataan di atas, object_B dari tipe B dikonversi ke tipe A dan ditugaskan ke object_A . Oleh karena itu, object_B adalah sumber dan object_A adalah tujuan.

Untuk konversi, pengguna dapat menggunakan fungsi konversi atau konstruktor dengan satu argumen, tergantung pada apakah itu ditentukan di kelas sumber atau kelas tujuan. Dengan kata lain, jika kelas B menangani konversi, itu akan memegang fungsi konversi. Di sisi lain, jika kelas A melakukan konversi, ia akan melakukannya melalui konstruktor yang mengambil argumen tipe kelas B.

Perhatikan bahwa hanya satu dari dua rutinitas konversi yang harus ditentukan; kompiler akan menghasilkan kesalahan jika keduanya ditentukan karena tidak akan dapat mengetahui rutin mana yang harus dipanggil.

Contoh Program

.cf { font-family: Lucida Console; ukuran font: 9pt; warna hitam; latar belakang: putih; }
.cl { margin: 0px; }
.cb1 { warna: hijau; }
.cb2 { warna: biru; }
.cb3 { warna: merah marun; }

/*

* Program mengkonversi dari satu jenis kelas ke

* lain menggunakan fungsi konversi

* dan konstruktor

* https://www.tech-faq.com

*/

#sertakan <iostream>

menggunakan namespace std;

kelas Kilometer

{

pribadi:

kilometer ganda;

publik:

Kilometer(dua kilometer): kilometer(kilometer) {}

tampilan kosong()

{

cout<<km<<“km”;

}

getValue ganda()

{

kembali kilometer;

}

};

kelas Miles

{

pribadi:

mil ganda;

publik:

Miles(double miles) : miles(miles) {}

tampilan kosong()

{

cout<<km<<“km”;

}

operator Kilometer()

{

kembali Kilometer (mil * 1.609344);

}

Mil (Kilometer kilometer)

{

mil = kilometer.getValue()/1.609344;

}

};

int utama (kosong)

{

/*

* Konversi menggunakan fungsi konversi

*/

Mil m1 = 100;

Kilometer k1 = m1;

m1.display();

cout<<” = “;

k1.display();

cout<<endl;

/*

* Konversi menggunakan konstruktor

*/

Kilometer k2 = 100;

Mil m2 = k2; // sama dengan: Mil m2 = Mil(k2);

k2.display();

cout<<” = “;

m2.display();

cout<<endl;

}

Keluaran

100 mil = 160,934 kilometer

100 kilometer = 62,1371 mil

Dalam Seri ini

  • Pengantar konversi tipe
  • Konversi dari tipe dasar ke tipe kelas
  • Konversi dari tipe kelas ke tipe dasar
  • Konversi dari satu tipe kelas ke tipe kelas lain