Rumah Keuangan Pribadi Membuat UDL Anda Sendiri di C ++ - dummies

Membuat UDL Anda Sendiri di C ++ - dummies

Daftar Isi:

Video: BEFORE YOU GO TO SCHOOL, WATCH THIS || WHAT IS SCHOOL FOR? 2024

Video: BEFORE YOU GO TO SCHOOL, WATCH THIS || WHAT IS SCHOOL FOR? 2024
Anonim

Perpustakaan Standar, ditambah dengan fitur built-in dari C ++, memberi Anda array literal yang menarik. Namun, nilai sebenarnya dari literal menjadi lebih jelas saat Anda menciptakannya sendiri.

Ada banyak kebutuhan berbeda yang dapat Anda gunakan dengan menggunakan User-Defined Literals (UDLs), namun tiga kebutuhan umum mendukung konversi data, membuat jenis kustom lebih mudah untuk bekerja dengan, dan mendapatkan efek samping yang diinginkan tanpa jumlah masalah pengkodean yang biasa.

Meskipun built-in atau Standard Library literals hadir dalam bentuk awalan dan akhiran, Anda hanya dapat membuat bentuk akhiran saat menentukan literal Anda sendiri. Selain itu, akhiran harus dimulai dengan underscore. Underscore berfungsi untuk membantu mencegah konflik dengan sufiks yang ada dan untuk memastikan pengembang lain tahu bahwa literal itu adalah bentuk kebiasaan (tidak standar).

Mengembangkan sebuah konversi UDL

Mungkin untuk merangkum konversi dalam UDL. Yang perlu Anda lakukan setelah membuat UDL semacam itu adalah memberikan akhiran yang sesuai saat menentukan konstanta untuk mendapatkan hasil yang Anda inginkan. Contoh CustomUDL01 menunjukkan teknik untuk menentukan konversi yang mengubah masukan radius ke area lingkaran dalam konstanta.

#include menggunakan namespace std; constexpr long double operator "_circ (radius ganda panjang) {radius kembali * radius * 3. 141592;} int main () {double x = 5. 0_circ; cout <<" area lingkaran adalah: "<< x << endl; return 0;}

Untuk membuat UDL, contohnya bergantung pada constexpr dengan nilai pengembalian ganda panjang dan nilai masukan, radius, double panjang. Persamaan untuk menghitung area lingkaran adalah πr 2 . Seperti yang Anda lihat, contoh melakukan perhitungan yang benar sebagai bagian dari constexpr.

Setiap kali Anda membuat UDL kustom, compiler memaksa Anda untuk menggunakan jenis konversi terbesar Apa ini berarti Anda harus menggunakan jeda panjang untuk literatur floating point dan unsigned long long untuk literal bilangan bulat Bahkan jika Anda kemudian memilih untuk menggunakan jenis yang lebih kecil, seperti yang dilakukan dalam hal ini Contoh dengan mendeklarasikan x sebagai ganda, literal itu sendiri harus menggunakan tipe kemungkinan terbesar.

Untuk mendeklarasikan UDL tipe baru, contohnya menciptakan x, yang menggunakan akhiran _circ. Kemudian output Hasilnya di layar. Ketika Anda menjalankan contoh ini, Anda melihat bahwa nilai yang benar telah ditempatkan di x, seperti yang ditunjukkan di sini:

Area lingkaran adalah: 78. 5398

Mengembangkan tipe UDL kustom

Banyak kode Anda Pertemuan bergantung pada jenis kebiasaan yang sulit untuk diikuti dan dimengerti.Membuat UDL untuk menyederhanakan kode membuat semuanya lebih jelas dan mengurangi potensi kesalahan. Contoh CustomUDL02 menunjukkan tipe kustom, operator yang digunakan untuk membuat UDL, dan juga bagaimana UDL digunakan untuk mendefinisikan literal.

#include menggunakan namespace std; struct MyType {MyType (input ganda): Nilai (Input) {} Nilai ganda;}; MyType operator "_mytype (nilai ganda panjang) {return MyType (Nilai);} int main () {auto UDLType = 145. 6_mytype; cout << uDLType. Nilai << endl; return 0;}

Agar ini teknik untuk bekerja, Anda harus membuat konstruktor untuk tipe Anda yang menerima jumlah masukan yang diperlukan untuk mengkonfigurasi jenis ini. Minimal, konstruktor harus menerima satu jenis atau nilai masukan yang diberikan pengguna hilang.

Kebutuhan jenis kustom tidak mendukung tipe data ukuran yang sama seperti yang dipersyaratkan oleh operator, tapi keduanya harus sama. Misalnya, Anda tidak bisa mentransisikan kursor panjang menjadi int.

Saat Anda menjalankan contoh ini, Anda melihat sebuah keluaran nilai 145. 6, yang merupakan nilai yang Anda masukkan ke tipe kustom.Mungkin untuk menangani setup yang cukup rumit dengan menggunakan pendekatan ini.Pengguna tipe kustom Anda memperoleh kemampuan untuk membuat kode yang jelas yang mudah diikuti dan ditafsirkan, bahkan ketika tipe dasarnya rumit.

Menggunakan UDL khusus untuk efek samping

Salah satu u yang paling menarik ses untuk UDL adalah menciptakan efek samping (operasi selain operasi biasa atau normal, baik untuk membuat aplikasi lebih pendek dan lebih efisien atau memberikan fleksibilitas tambahan). Anda ingin mendefinisikan jenis operasi tertentu yang terjadi sebagai hasil penentuan literal.

Apa yang Anda dapatkan masih merupakan literal, tapi literal yang tidak harus menunjukkan nilai yang akan Anda gunakan nanti. Contoh CustomUDL03 menunjukkan satu penggunaan non-tradisional seperti itu.

#include menggunakan namespace std; void operator "_countdown (unsigned long long Value) {untuk (int i = Nilai; i> = 0; i--) cout << i << endl;} int main () {10_countdown; return 0;}

Perhatikan bahwa operator _countdown tidak terikat pada sesuatu yang biasanya Anda kaitkan dengan sebuah nilai. Sebenarnya, itu sama sekali tidak mengembalikan nilai sama sekali. Apa yang Anda dapatkan sebagai pengganti adalah efek samping. Saat Anda menjalankan contoh ini, Anda lihatlah output ini

10 9 8 7 6 5 4 3 2 1 0

Apa yang telah terjadi adalah bahwa compiler telah mengganti 10_countdown dengan pernyataan cout individual, satu untuk setiap iterasi loop. Apa yang Anda hadapi adalah Efek samping UDL membuka segala macam kemungkinan menarik untuk membuat kode yang menyederhanakan tugas berulang tertentu dengan cara yang membuat penggunaannya jelas.

Membuat UDL Anda Sendiri di C ++ - dummies

Pilihan Editor

Membuat Kartu Ucapan di Microsoft Word 2003 - dummies

Membuat Kartu Ucapan di Microsoft Word 2003 - dummies

Jika Anda ingin membuat sesuatu di Word yang hanya akan menyilaukan seseorang, coba tangan Anda dengan kartu ucapan yang disesuaikan. Untuk mengatur Word agar membuat kartu ucapan dari satu lembar kertas ukuran standar, ikuti langkah-langkah ini: 1. Pilih File -> Page Setup. 2. Klik tab Margins. 3. Pilih Landscape ...

Membuat Index of Word 2007 Document - dummies

Membuat Index of Word 2007 Document - dummies

Jika Anda ingin membuat indeks untuk Word Anda Dokumen 2007, tugas pertama adalah menandai kata atau frasa yang ingin Anda sertakan dalam indeks. Cara yang paling umum untuk melakukannya adalah dengan memasukkan penanda indeks dalam dokumen pada setiap kemunculan setiap item yang ingin Anda tampilkan ...

Editing di Word 2007: Melacak Perubahan dan Review - dummies

Editing di Word 2007: Melacak Perubahan dan Review - dummies

Menulis adalah seni yang sepi ... yaitu , sampai editor muncul. Mereka akan membuat revisi dengan menambahkan karya tulis Anda dengan hati-hati, memindahkan barang-barang, dan menghapus teks (Aduh!). Tidak ada cara untuk mengidentifikasi teks asli Anda dari teks yang dimodifikasi - kecuali jika Anda menggunakan alat Pelacakan Lagu Word 2007. Pelacakan perubahan sebagai ...

Pilihan Editor

Bagaimana Menonaktifkan dan Mengaktifkan Halaman di Squarespace - dummies

Bagaimana Menonaktifkan dan Mengaktifkan Halaman di Squarespace - dummies

Saat Anda melakukan pemeliharaan situs, kemungkinan besar Anda ingin menonaktifkan halaman situs Anda yang sedang dibangun. Squarespace memungkinkan Anda untuk dengan mudah menonaktifkan dan mengaktifkan kembali halaman. Bagaimana cara menonaktifkan halaman di Squarespace Jika Anda ingin menonaktifkan halaman di situs Anda, Anda dapat melakukannya di ...

Bagaimana Menentukan Navigasi Situs Anda di Squarespace - dummies

Bagaimana Menentukan Navigasi Situs Anda di Squarespace - dummies

Template yang Anda pilih di Squarespace mendikte berbagai area navigasi yang Anda miliki di situs Anda. Template Anda mungkin menyediakan area navigasi berikut di Pengelola Konten: Atas / Utama: Semua template memiliki navigasi teratas atau utama. Sekunder: Halaman yang ditambahkan ke area navigasi ini bukan fokus utama situs Anda. Footer: Beberapa template memiliki ...

Bagaimana Menemukan Editor Gaya Squarespace - dummies

Bagaimana Menemukan Editor Gaya Squarespace - dummies

Anda menggunakan Editor Gaya di Squarespace kapan saja Anda perlu memodifikasi desain situs Anda atau elemen tertentu di situs Anda. Style Editor adalah bagian dari mode Style, yang Anda akses di area Preview. Ikuti langkah-langkah ini untuk memuat Editor Gaya di browser Anda: Masuk ke situs web Anda. Anda ...

Pilihan Editor

Bagaimana Memodifikasi Master Slide di PowerPoint 2016 - dummies

Bagaimana Memodifikasi Master Slide di PowerPoint 2016 - dummies

Jika Anda tidak menyukai tata letak dari slide Anda dalam presentasi PowerPoint 2016, hubungi Master Slide dan lakukan sesuatu tentang hal itu, seperti yang ditunjukkan pada langkah-langkah ini: Buka Slide Master View dengan membuka tab View pada Ribbon dan kemudian klik tombol Slide Master, yang terdapat dalam Presentasi Grup tampilan Sebagai alternatif, ...

Bagaimana Memodifikasi Grafis SmartArt di PowerPoint - dummies

Bagaimana Memodifikasi Grafis SmartArt di PowerPoint - dummies

Setelah membuat grafik SmartArt dalam presentasi PowerPoint Anda, Anda mungkin ingin mengubahnya. Modifikasi dapat mencakup perubahan jenis atau tata letak grafis, menambah atau menghapus bentuk, dan mengubah urutan bentuk bentuk. Pada slide 1, klik bingkai grafis SmartArt untuk memilih keseluruhan grafik. Klik SmartArt Tools ...