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? 2025

Video: BEFORE YOU GO TO SCHOOL, WATCH THIS || WHAT IS SCHOOL FOR? 2025
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

Kantor 2011 untuk Mac: Membuat Tabel dengan Kotak Dialog atau Teks - dummies

Kantor 2011 untuk Mac: Membuat Tabel dengan Kotak Dialog atau Teks - dummies

Sementara ada cara baru untuk membuat tabel di Office 2011 untuk Mac, Anda masih bisa menggunakan teknik stand-by. Menu yang familiar masih bekerja di Office 2011 untuk Mac, dan inilah buktinya. Dialog meja semuanya masih ada di sana: Di Word, pilih Table → Insert → Table; Sebagai alternatif, pada tab Tabel Ribbon, di Tabel Pilihan ...

Kantor 2011 untuk Mac: Melepaskan Command Toolbar - dummies

Kantor 2011 untuk Mac: Melepaskan Command Toolbar - dummies

Apakah Anda menggunakan Office 2011 untuk Mac atau Produk Microsoft Office lainnya, toolbar Anda bisa sangat berantakan. Setiap kali Anda merasa perlu untuk men-tweak antarmuka aplikasi Microsoft Office, Anda perlu memanggil dialog Customize Toolbars and Menus. Ini adalah dialog super kuat di Word, Excel, dan PowerPoint yang memungkinkan Anda ...

Kantor 2011 untuk Mac: Berbagi Toolbar dan Menu - dummies

Kantor 2011 untuk Mac: Berbagi Toolbar dan Menu - dummies

Setelah Anda menyesuaikan Office 2011 Anda bilah alat dan antarmuka, Anda dapat berbagi penyesuaian dengan orang lain. Namun, pastikan bahwa Anda menasihati orang-orang yang telah Anda lakukan sebelum membagikan dokumen Anda dengannya; Jika tidak, mereka mungkin akan terkejut saat mereka membuka dokumen Anda dan melihat susunan toolbar atau menu yang berbeda dari pada apa ...

Pilihan Editor

Penting Office 2007 Commands - dummies

Penting Office 2007 Commands - dummies

Anda dapat membuat program Office 2007 lebih mudah jika Anda menggunakan pintasan sederhana ini. Perintah-perintah ini, seperti mengurungkan kesalahan dan memperbesar dan memperkecil akan membantu Anda menghemat waktu. Memasuki simbol: Untuk memasukkan simbol atau karakter asing yang tidak ada pada keyboard Anda, masuk ke tab Insert dan klik Symbol ...

Menyesuaikan Perintah Menu di Office 2003 - dummies

Menyesuaikan Perintah Menu di Office 2003 - dummies

Office 2003 menyediakan dua teknik untuk menyesuaikan menu dan perintah menu. Anda bisa memulai dari kotak dialog Rearrange Commands atau menggunakan metode drag-and-drop. Teruslah membaca. Menangani perintah menu di kotak dialog Rearrange Commands Teknik tombol Options Toolbar untuk menangani tombol toolbar bagus dan keren, tapi bagaimana jika Anda ingin ...

Pilihan Editor

Bagaimana memecahkan kesalahan logis dalam analisis argumen Pertanyaan GRE - dummies

Bagaimana memecahkan kesalahan logis dalam analisis argumen Pertanyaan GRE - dummies

Ketika Anda menjawab Argument Analysis Pertanyaan di GRE, argumen mungkin tampak logis dan adil di permukaan tapi sebenarnya keliru (keliru, cacat). Alasan melingkar, penalaran sebab-akibat yang keliru, dan generalisasi sweeping adalah tiga tanda argumen lemah. Dengan melihat beberapa kesalahan logis yang lebih umum, Anda dapat mengidentifikasi kelemahan dalam argumen dan ...

Pilihan ganda, Beberapa Jawaban tentang Tes Matematika GRE - Pertanyaan Praktik - dummies

Pilihan ganda, Beberapa Jawaban tentang Tes Matematika GRE - Pertanyaan Praktik - dummies

Meskipun pertanyaan matematika biasanya hanya memiliki satu jawaban yang benar, ini tidak selalu terjadi. Akibatnya, beberapa pertanyaan pilihan ganda pada tes GRE Math akan memberi Anda daftar jawaban dan meminta Anda untuk memilih lebih dari satu. Pertanyaan praktik berikut meminta Anda untuk menemukan nilai kemungkinan yang berbeda secara berurutan dan ...

Pilihan ganda, Beberapa Jawaban tentang Tes Verbal GRE - Pertanyaan Praktik - dummies

Pilihan ganda, Beberapa Jawaban tentang Tes Verbal GRE - Pertanyaan Praktik - dummies

Pada tes GRE Verbal, beberapa pertanyaan pilihan ganda akan memiliki lebih dari satu jawaban yang benar. Untuk pertanyaan ini, Anda akan diminta untuk melihat-lihat pilihan jawaban dan memilih semua yang menurut Anda benar. Dalam pertanyaan praktik berikut, Anda diminta untuk membaca bagian yang disertakan, dan kemudian ...