C++

Kelebihan Operator C++

Kelebihan Operator C++
Artikel ini memberikan panduan untuk operator overloading di C++. Kelebihan operator adalah fitur yang berguna dan kuat dari bahasa pemrograman C++ C. C++ memungkinkan kelebihan sebagian besar operator bawaan. Dalam tutorial ini, kita akan menggunakan beberapa contoh untuk mendemonstrasikan mekanisme overloading operator.

Apa itu Operator??

Operator adalah simbol yang menunjukkan kepada kompiler untuk melakukan operasi tertentu. Misalnya, ada berbagai jenis operator di C++, seperti Operator Aritmatika, Operator Logika, Operator Relasional, Operator Assignment, Operator Bitwise, dan lainnya.

Apa itu Operator Overloading?

Bahasa C++ memungkinkan programmer untuk memberikan arti khusus kepada operator. Ini berarti Anda dapat mendefinisikan ulang operator untuk tipe data yang ditentukan pengguna di C++. Misalnya, "+" digunakan untuk menambahkan tipe data bawaan, seperti int, float, dll. Untuk menambahkan dua jenis data yang ditentukan pengguna, perlu membebani operator "+".

Sintaks untuk Operator Overloading

C++ menyediakan fungsi khusus yang disebut "operator" untuk overloading operator. Berikut ini adalah sintaks untuk overloading operator:

kelas sampelKelas


Publik:
simbol operator returnType (argumen)



;

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

Contoh

Sekarang setelah Anda memahami konsep keseluruhan dari operator overloading, mari kita lihat beberapa contoh program kerja agar Anda memahami ide ini secara lebih konkret. Kami akan membahas contoh-contoh berikut:

  1. Contoh 1: Overloading Operator Unary (1)
  2. Contoh 2: Overloading Operator Unary (2)
  3. Contoh 3: Overload Operator Biner
  4. Contoh 4: Overloading Operator Relasional

Contoh 1: Overloading Operator Unary (1)

Dalam contoh ini, kami akan mendemonstrasikan bagaimana operator unary dapat kelebihan beban di C++. Kami telah mendefinisikan kelas, "Square_Box," dan fungsi publik, "operator ++ ()" dan "operator ++ (int)," untuk membebani awalan dan operator kenaikan postfix. Dalam fungsi “main()”, kita telah membuat objek, “mySquare_Box1.Kami kemudian telah menerapkan operator kenaikan prefiks dan postfix ke objek "mySquare_Box1" untuk mendemonstrasikan kelebihan operator unary.

#termasuk
menggunakan namespace std;
kelas Square_Box

pribadi:
panjang mengambang;
lebar mengambang;
ketinggian mengambang;
publik:
Kotak_Persegi()
Square_Box(float l, float w, float h)

panjang = l;
lebar = w;
tinggi = jam;

// Operator Overloading - operator awalan "++"
batalkan operator ++()

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

// Operator Overloading - operator postfix "++"
batalkan operator ++ (int)

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

batalkan keluaran()

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

;
int utama()

Persegi_Kotak mySquare_Box1(3.0, 5.0, 6.0);
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.keluaran();
mySquare_Box1++;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.keluaran();
++mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.keluaran();
kembali 0;

Contoh 2: Overloading Operator Unary (2)

Ini adalah contoh lain di mana kami akan menunjukkan bagaimana operator unary dapat kelebihan beban di C++. Kami telah mendefinisikan kelas, "Square_Box," dan fungsi publik, "operator - ()" dan "operator - (int)," untuk membebani operator penurunan prefiks dan postfix. Dalam fungsi "main()", kita telah membuat objek "mySquare_Box1". Kami kemudian telah menerapkan operator penurunan awalan dan postfix ke objek "mySquare_Box1".

#termasuk
menggunakan namespace std;
kelas Square_Box

pribadi:
panjang mengambang;
lebar mengambang;
ketinggian mengambang;
publik:
Kotak_Persegi()
Square_Box(float l, float w, float h)

panjang = l;
lebar = w;
tinggi = jam;

// Operator Overloading - operator awalan "--"
operator batal -- ()

panjangnya--;
lebar--;
tinggi--;

// Operator Overloading - "--" operator postfix
operator batal -- (int)

panjangnya--;
lebar--;
tinggi--;

batalkan keluaran()

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

;
int utama()

Persegi_Kotak mySquare_Box1(3.0, 5.0, 6.0);
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.keluaran();
mySquare_Box1--;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.keluaran();
--mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.keluaran();
kembali 0;

Contoh 3: Overload Operator Biner

Sekarang, kita akan melihat contoh overloading operator biner. Sintaks untuk overloading operator biner akan agak berbeda dari overloading operator unary. Dalam contoh ini, kita akan membebani operator “+” untuk menambahkan dua objek “Square_Box”.

#termasuk
menggunakan namespace std;
kelas Square_Box

pribadi:
panjang mengambang;
lebar mengambang;
ketinggian mengambang;
publik:
Kotak_Persegi()
Square_Box(float l, float w, float h)

panjang = l;
lebar = w;
tinggi = jam;

// Operator Kelebihan Beban - operator "+"
Operator Kotak_Kotak + (konst Kotak_Kotak& obj)

Suhu kotak_kotak;
suhu.panjang = panjang + obj.panjangnya;
suhu.lebar = lebar + obj.lebar;
suhu.tinggi = tinggi + obj.tinggi;
kembali suhu;

batalkan keluaran()

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

;
int utama()

Persegi_Kotak mySquare_Box1(3.0, 5.0, 6.0), mySquare_Box2(2.0, 3.0, 5.0), hasil;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.keluaran();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.keluaran();
hasil = mySquare_Box1 + mySquare_Box2;
cout << "Dimensions of resultant square box = " << endl;
hasil.keluaran();
kembali 0;

Contoh 4: Overloading Operator Relasional

Sekarang, kita akan melihat contoh overloading operator relasional. Sintaks untuk overloading operator relasional sama seperti overloading operator biner. Dalam contoh ini, kita akan membebani “<” and “>” operator untuk diterapkan ke objek “Square_Box”.

#termasuk
menggunakan namespace std;
kelas Square_Box

pribadi:
panjang mengambang;
lebar mengambang;
ketinggian mengambang;
publik:
Kotak_Persegi()
Square_Box(float l, float w, float h)

panjang = l;
lebar = w;
tinggi = jam;

// Operator Kelebihan Beban - "<" operator
operator bola < (const Square_Box& obj)

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

// Operator Kelebihan Beban - ">" operator
operator bool > (const Square_Box& obj)

jika(panjang > obj.panjangnya)
kembali benar;
lain
kembali salah;

batalkan keluaran()

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

;
int utama()

Persegi_Kotak 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.keluaran();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.keluaran();
hasil = mySquare_Box1 < mySquare_Box2;
cout << "mySquare_Box1 < mySquare_Box2 = " << result < mySquare_Box2;
cout < mySquare_Box2 = " << result << endl;
kembali 0;

Kesimpulan

C++ adalah bahasa pemrograman serba guna dan fleksibel yang banyak digunakan di berbagai domain. Bahasa pemrograman ini mendukung polimorfisme waktu kompilasi dan run-time. Artikel ini menunjukkan kepada Anda bagaimana melakukan operator overloading di C++. Ini adalah fitur C++ yang sangat berguna yang menambahkan beberapa upaya ekstra bagi pengembang untuk mendefinisikan operator untuk kelebihan beban, tetapi ini jelas membuat hidup lebih mudah bagi pengguna kelas.

Tutorial OpenTTD
OpenTTD adalah salah satu game simulasi bisnis paling populer di luar sana. Dalam game ini, Anda perlu membuat bisnis transportasi yang luar biasa. Na...
SuperTuxKart untuk Linux
SuperTuxKart adalah judul hebat yang dirancang untuk memberi Anda pengalaman Mario Kart gratis di sistem Linux Anda. Ini cukup menantang dan menyenang...
Pertempuran untuk Tutorial Westnoth
The Battle for Wesnoth adalah salah satu game strategi open source terpopuler yang bisa kamu mainkan saat ini. Tidak hanya game ini telah dikembangkan...