C ++

Lebihan Operator C ++

Lebihan Operator C ++
Artikel ini memberikan panduan untuk memuatkan operator di C++. Overload operator adalah ciri berguna dan kuat dari bahasa pengaturcaraan C ++. C ++ membenarkan pengurangan beban dari kebanyakan pengendali terbina dalam. Dalam tutorial ini, kami akan menggunakan beberapa contoh untuk menunjukkan mekanisme beban operator yang berlebihan.

Apa itu Pengendali?

Operator adalah simbol yang menunjukkan kepada penyusun untuk melakukan operasi tertentu. Sebagai contoh, terdapat pelbagai jenis operator di C ++, seperti Operator Aritmetik, Pengendali Logik, Pengendali Perhubungan, Pengendali Tugasan, Pengendali Bitwise, dan banyak lagi.

Apa itu Beban Pengendali?

Bahasa C ++ membolehkan pengaturcara memberi makna khas kepada pengendali. Ini bermaksud bahawa anda boleh mentakrifkan semula operator untuk jenis data yang ditentukan pengguna di C++. Sebagai contoh, "+" digunakan untuk menambahkan jenis data bawaan, seperti int, float, dll. Untuk menambahkan dua jenis data yang ditentukan pengguna, perlu memuatkan operator "+" yang berlebihan.

Sintaks untuk Pengendalian yang berlebihan

C ++ menyediakan fungsi khas yang disebut "operator" untuk operator yang berlebihan. Berikut ini adalah sintaks untuk operator yang berlebihan:

sampel kelasKelas


Orang ramai:
simbol operator returnType (argumen)



;

Di sini, "operator" adalah kata kunci, dan "simbol" adalah operator yang ingin kita bebankan.

Contoh

Sekarang setelah anda memahami keseluruhan konsep pengendalian berlebihan, mari kita laksanakan beberapa contoh program yang berfungsi untuk anda memahami idea ini dengan lebih tepat. Kami akan merangkumi contoh berikut:

  1. Contoh 1: Beban Pengendali Tidak Berguna (1)
  2. Contoh 2: Beban Pengendali Tidak Berguna (2)
  3. Contoh 3: Beban Pengendali Binari
  4. Contoh 4: Lebihan Operator Relasional

Contoh 1: Beban Pengendali Tidak Berguna (1)

Dalam contoh ini, kami akan menunjukkan bagaimana pengendali yang tidak aktif dapat dibebankan dalam C++. Kami telah menentukan kelas, "Square_Box," dan fungsi awam, "operator ++ ()" dan "operator ++ (int)," untuk membebani operator awalan dan kenaikan pasca perbaikan. Dalam fungsi "utama ()", kami telah membuat objek, "mySquare_Box1."Kami kemudian telah menggunakan operator kenaikan awalan dan pasca perbaikan pada objek" mySquare_Box1 "untuk menunjukkan pengendalian yang berlebihan.

#sertakan
menggunakan ruang nama std;
kelas Square_Box

peribadi:
panjang apungan;
lebar apungan;
ketinggian apungan;
awam:
Kotak_ Kotak ()
Kotak_ Kotak (float l, float w, float h)

panjang = l;
lebar = w;
tinggi = h;

// Pengendalian Berlebihan Operator - Operator awalan "++"
pengendali batal ++ ()

panjang ++;
lebar ++;
tinggi ++;

// Pengendalian Berlebihan Operator - "++" pengendali pasca perbaikan
pengendali void ++ (int)

panjang ++;
lebar ++;
tinggi ++;

output tidak sah ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int utama ()

Square_Box mySquare_Box1 (3.0, 5.0, 6.0);
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.pengeluaran();
mySquare_Box1 ++;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.pengeluaran();
++mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.pengeluaran();
pulangan 0;

Contoh 2: Beban Pengendali Tidak Berguna (2)

Ini adalah satu lagi contoh di mana kita akan menunjukkan bagaimana pengendali yang tidak aktif dapat dibebankan dalam C++. Kami telah menentukan kelas, "Square_Box," dan fungsi umum, "operator - ()" dan "operator - (int)," untuk membebankan operator penurunan awalan dan pasca perbaikan. Dalam fungsi "utama ()", kami telah membuat objek "mySquare_Box1". Kami kemudian telah menerapkan pengendali penurunan awalan dan pasca perbaikan pada objek "mySquare_Box1".

#sertakan
menggunakan ruang nama std;
kelas Square_Box

peribadi:
panjang apungan;
lebar apungan;
ketinggian apungan;
awam:
Kotak_ Kotak ()
Kotak_ Kotak (float l, float w, float h)

panjang = l;
lebar = w;
tinggi = h;

// Pengendali awalan operator - "-" operator awalan
pengendali batal - ()

panjang--;
lebar--;
tinggi--;

// Pengendalian berlebihan Operator - "-" pengendali pasca perbaikan
pengendali kekosongan - (int)

panjang--;
lebar--;
tinggi--;

output tidak sah ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int utama ()

Square_Box mySquare_Box1 (3.0, 5.0, 6.0);
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.pengeluaran();
mySquare_Box1--;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.pengeluaran();
--mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.pengeluaran();
pulangan 0;

Contoh 3: Beban Pengendali Binari

Sekarang, kita akan melihat contoh pembebanan operator binari. Sintaks untuk pembebanan operator binari akan sedikit berbeza dengan beban operator yang tidak tetap. Dalam contoh ini, kita akan membebankan operator "+" untuk menambah dua objek "Square_Box".

#sertakan
menggunakan ruang nama std;
kelas Square_Box

peribadi:
panjang apungan;
lebar apungan;
ketinggian apungan;
awam:
Kotak_ Kotak ()
Kotak_ Kotak (float l, float w, float h)

panjang = l;
lebar = w;
tinggi = h;

// Pengendalian berlebihan - pengendali "+"
Operator Square_Box + (const Square_Box & obj)

Temp Square_Box;
temp.panjang = panjang + obj.panjang;
temp.lebar = lebar + obj.lebar;
temp.tinggi = tinggi + obj.ketinggian;
pulangan temp;

output tidak sah ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int utama ()

Square_Box mySquare_Box1 (3.0, 5.0, 6.0), mySquare_Box2 (2.0, 3.0, 5.0), hasilnya;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.pengeluaran();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.pengeluaran();
hasil = mySquare_Box1 + mySquare_Box2;
cout << "Dimensions of resultant square box = " << endl;
hasil.pengeluaran();
pulangan 0;

Contoh 4: Lebihan Operator Relasional

Sekarang, kita akan melihat contoh pembebanan operator hubungan. Sintaks untuk pembebanan operator relasional sama seperti kelebihan operator binari. Dalam contoh ini, kita akan membebani “<” and “>"Operator untuk menggunakan objek" Square_Box ".

#sertakan
menggunakan ruang nama std;
kelas Square_Box

peribadi:
panjang apungan;
lebar apungan;
ketinggian apungan;
awam:
Kotak_ Kotak ()
Kotak_ Kotak (float l, float w, float h)

panjang = l;
lebar = w;
tinggi = h;

// Beban Pengendali - "<" operator
pengendali bool < (const Square_Box& obj)

jika (panjang < obj.length)
kembali benar;
yang lain
kembali palsu;

// Pengendali berlebihan - -> "pengendali
pengendali bool> (const Square_Box & obj)

jika (panjang> obj.panjang)
kembali benar;
yang lain
kembali palsu;

output tidak sah ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int utama ()

Square_Box mySquare_Box1 (2.0, 3.0, 5.0), mySquare_Box2 (4.0, 6.0, 8.0);
hasil bool;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.pengeluaran();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.pengeluaran();
hasil = mySquare_Box1 < mySquare_Box2;
cout << "mySquare_Box1 < mySquare_Box2 = " << result < mySquare_Box2;
cout < mySquare_Box2 = " << result << endl;
pulangan 0;

Kesimpulannya

C ++ adalah bahasa pengaturcaraan tujuan umum dan fleksibel yang banyak digunakan dalam pelbagai domain. Bahasa pengaturcaraan ini menyokong polimorfisme masa kompilasi dan masa berjalan. Artikel ini menunjukkan kepada anda bagaimana melakukan overloading operator di C++. Ini adalah ciri C ++ yang sangat berguna yang menambahkan sedikit usaha tambahan bagi pembangun untuk menentukan pengendali untuk kelebihan beban, tetapi ia pasti menjadikan hidup lebih mudah bagi pengguna kelas.

Cara Meningkatkan FPS di Linux?
FPS bermaksud Bingkai sesaat. Tugas FPS adalah mengukur kadar bingkai dalam pemutaran video atau persembahan permainan. Dengan kata mudah bilangan gam...
Permainan Makmal Apl Oculus Teratas
Sekiranya anda adalah pemilik alat dengar Oculus, maka anda mesti mengetahui tentang memuatkan sideload. Sideloading adalah proses memasang kandungan ...
10 Permainan Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform dominan untuk permainan kerana peratusan besar permainan yang sedang berkembang hari ini untuk meny...