Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C++ untuk menukar jenis primitif kepada objek

Program C++ untuk menukar jenis primitif kepada objek

PHPz
PHPzke hadapan
2023-08-26 19:29:031202semak imbas

Program C++ untuk menukar jenis primitif kepada objek

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.

Tatabahasa

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;
}

Algoritma

  • Masukkan pemberat input ke dalam pembolehubah integer.
  • Buat objek dengan berat kelas.
  • Tetapkan nilai integer kepada objek kelas;
  • Panggil fungsi pertunjukan objek.

Dalam pembina kelas yang ditentukan, lakukan perkara berikut:

  • Bahagikan nilai input dengan 1000 untuk mendapatkan nilai kilogram (kg) sebagai hasil bagi.
  • Bahagikan nilai input dengan 1000 untuk mendapatkan baki dalam gram (gm).

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.

Contoh

#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;
}

Output

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.

Kesimpulan

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam