Operator unary kelebihan beban
Operator unary menghasilkan hasil dari satu operand. Anda dapat menentukan kelebihan beban sekumpulan operator unary standar untuk bekerja pada jenis yang ditentukan pengguna.
Operator unary yang dapat kelebihan beban
Anda dapat membebani operator unary berikut pada jenis yang ditentukan pengguna:
!
(LOGIS NOT)&
(alamat)~
(pelengkap)*
(dereferensi pointer)+
(unary plus)-
(negasi unary)++
(kenaikan awalan) atau (kenaikan postfix)--
(prefiks decrement) atau (postfix decrement)
Deklarasi kelebihan beban operator unary
Anda dapat mendeklarasikan operator unary yang kelebihan beban baik sebagai fungsi anggota non-statis atau sebagai fungsi nonmember. Fungsi anggota unary yang kelebihan beban tidak mengambil argumen karena secara implisit beroperasi pada this
. Fungsi nonmember dideklarasikan dengan satu argumen. Ketika kedua formulir dideklarasikan, pengkompilasi mengikuti aturan untuk resolusi kelebihan beban untuk menentukan fungsi mana yang akan digunakan, jika ada.
Aturan berikut berlaku untuk semua operator unary awalan. Untuk mendeklarasikan fungsi operator unary sebagai fungsi anggota non-statis, gunakan formulir deklarasi ini:
return-type
operator
op
();
Dalam formulir ini, return-type
adalah jenis pengembalian dan op
merupakan salah satu operator yang tercantum dalam tabel sebelumnya.
Untuk mendeklarasikan fungsi operator unary sebagai fungsi nonmember, gunakan formulir deklarasi ini:
return-type
operator
op
(
class-type
);
Dalam formulir ini, return-type
adalah jenis pengembalian, op
adalah salah satu operator yang tercantum dalam tabel sebelumnya, dan class-type
merupakan jenis kelas argumen yang akan dioperasikan.
Bentuk postfix ++
dan --
mengambil argumen tambahan int
untuk membedakannya dari bentuk awalan. Untuk informasi selengkapnya tentang formulir awalan dan pascafiks dari ++
dan , lihat Peningkatan dan penurunan kelebihan beban--
operator.
Catatan
Tidak ada batasan pada jenis pengembalian operator unary. Misalnya, masuk akal bagi NOT logis (!
) untuk mengembalikan bool
nilai, tetapi perilaku ini tidak diberlakukan.
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk