Jenis data primitif dalam C++ ialah jenis data yang dipratakrifkan oleh bahasa itu sendiri seperti int, float, double, dsb. Objek ialah contoh kelas, dan C++ ialah bahasa berorientasikan objek, dan penukaran antara jenis data primitif dan objek diperlukan. Kelas berfungsi sebagai rancangan seni bina untuk jenis data. Walaupun ini tidak menerangkan sebarang data secara khusus, ia menyatakan maksud nama kelas, iaitu rupa objek kelas itu dan operasi yang boleh dilakukan padanya.
Dalam pengkompil bahasa C++, penukaran antara jenis data primitif kepada objek tidak ditakrifkan dengan jelas, jadi untuk menukar jenis data primitif kepada objek, mekanisme mesti ditentukan oleh pengaturcara. Cara jenis primitif ditukar kepada objek tertentu ditakrifkan dalam pembina kelas yang ditentukan pengguna. Mari kita ambil contoh untuk memahami isu ini dengan lebih baik.
Masalah yang kami selesaikan ialah menukar berat dalam gram kepada kilogram dan gram. Untuk melakukan ini, kami mentakrifkan berat kelas yang ditentukan pengguna dengan dua ahli integer kg dan gm. "kg" ialah nilai kilogram berat yang diberikan dan "gm" ialah baki berat kurang daripada satu kilogram untuk ditukar. Algoritma untuk menyelesaikan masalah ini diberikan di bawah.
Sintaks untuk penukaran adalah seperti berikut -
class Myclass{ private: int classVal; public: MyClass(){ classVal = 0; } MyClass(int val) { classVal = val; } }; int main() { Myclass m; int val = <integer value>; m = val; return 0; }
Dalam pembina kelas yang ditentukan, lakukan perkara berikut:
Seperti yang dinyatakan sebelum ini, semua mekanisme penukaran mesti ditakrifkan dalam pembina. Pembina mesti diparameterkan, dan nilai sumber asal mesti diserahkan kepada pembina sebagai parameter. Kod sumber masalah adalah seperti berikut.
#include <iostream> using namespace std; //converts weight in grams to kgs and grams class Weight { private: int kg, gm; public: //default constructor Weight() { kg = 0; gm = 0; } //paramaeterized constructor Weight(int ip) { this->kg = ip / 1000; this->gm = ip % 1000; } //shows the output void show() { cout << "The weight is " << this->kg << " kgs and " << this->gm << " grams." << endl; } }; int main() { //weight in grams int ip = 1085; //conversion done here Weight w; w = ip; w.show(); return 0; }
The weight is 1 kgs and 85 grams.
Dalam contoh, input berada di dalam fungsi utama dan ialah "ip". Terdapat juga objek berat kelas "w". Kami baru sahaja memberikan nilai integer kepada objek kelas dan memanggil panggilan tersirat kepada pembina parameter objek itu. Fungsi yang ditakrifkan dalam pembina telah dilaksanakan, dan akhirnya output dipaparkan dengan memanggil fungsi pertunjukan.
Dalam contoh ini, penukaran daripada jenis primitif kepada objek kelas yang ditentukan pengguna dilakukan menggunakan panggilan tersirat kepada pembina. Ini baik sehingga pembina memerlukan berbilang nilai primitif untuk membuat instantiate objek. Oleh itu, kita perlu memanggil pembina secara eksplisit dan kemudian lulus nilai asal sebagai parameter kepada pembina objek. Perkara sebaliknya berlaku untuk penukaran daripada objek kepada jenis primitif, yang memerlukan proses yang lebih kompleks untuk diselesaikan.
Atas ialah kandungan terperinci Program C++ untuk menukar jenis primitif kepada objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!