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:
- Contoh 1: Beban Pengendali Tidak Berguna (1)
- Contoh 2: Beban Pengendali Tidak Berguna (2)
- Contoh 3: Beban Pengendali Binari
- 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.
#sertakanmenggunakan 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".
#sertakanmenggunakan 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".
#sertakanmenggunakan 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 ".
#sertakanmenggunakan 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.