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

10 Outlook 2013 Jalan pintas layak diambil - dummies

10 Outlook 2013 Jalan pintas layak diambil - dummies

Meskipun komputer dan program perangkat lunak seperti Outlook 2013 seharusnya menyelamatkan Anda waktu, beberapa hari ini sepertinya tidak menjadi masalah. Tombol juggling, kunci, dan Pita sepertinya bisa memakan waktu seharian. Berikut adalah beberapa cara pintas yang bisa menghemat waktu dan ketegangan Anda.

Cara menambahkan kontak di Outlook 2013 - dummies

Cara menambahkan kontak di Outlook 2013 - dummies

Bila bukan apa yang Anda ketahui tapi siapa yang Anda kenal, Anda butuh alat yang bagus untuk mencatat siapa siapa. Outlook 2013 adalah alat yang hebat untuk mengelola nama dan alamat Anda, dan ini mudah digunakan sebagai Buku Hitam Kecil Anda.

Cara menambahkan foto ke kontak Outlook 2013 - dummies

Cara menambahkan foto ke kontak Outlook 2013 - dummies

Anda dapat menyertakan gambar dengan kontak informasi yang Anda kumpulkan di Outlook 2013, dan tidak hanya untuk hiasan. Kini setelah banyak ponsel dan perangkat seluler lainnya melakukan sinkronisasi dengan daftar Kontak Outlook, Anda dapat membuat gambar seseorang muncul di layar ponsel Anda setiap kali dia menelepon atau mengirim SMS. Foto-foto itu ...

Pilihan Editor

Cara Mengatasi Masalah Lingkaran di lingkaran PSAT / NMSQT - dummies

Cara Mengatasi Masalah Lingkaran di lingkaran PSAT / NMSQT - dummies

Ada di mana-mana, terutama di PSAT / NMSQT. Bukan kebetulan bahasa Inggris berisi begitu banyak rujukan ke lingkaran: lingkaran teman, air mengitari cerat, lingkaran penuh, dan sebagainya. Ketika Anda menekan lingkaran pertanyaan pada PSAT / NMSQT, ingat fakta-fakta ini: Jari-jari adalah garis lurus dari pusat lingkaran ...

Meningkatkan Motivasi Anda untuk Dilakukan dengan baik di MAT - dummies

Meningkatkan Motivasi Anda untuk Dilakukan dengan baik di MAT - dummies

Uji Analogi Miller (Miller Analogies Test - MAT) adalah tes standar yang biasanya digunakan untuk penerimaan sekolah pascasarjana, jadi Anda sudah termotivasi untuk melakukannya dengan baik. Sebagai belajar untuk MAT menjadi sulit, memakan waktu, membosankan, atau hanya membosankan, akan sulit untuk mempertahankan motivasi Anda untuk melanjutkan pencarian Anda. Jadi, bagaimana Anda bisa meningkatkan level Anda saat ini?

Pilihan Editor

Bagaimana memberi nama file HTML - dummies

Bagaimana memberi nama file HTML - dummies

Anda tidak dapat membuka kode Anda di browser sampai Anda menyimpan itu dengan perpanjangan nama file. html (atau .htm). Ingat bahwa judul halaman ditampilkan di bilah judul browser atau bilah tab. Judul benar-benar bagaimana halaman Anda "diidentifikasi" ke seluruh dunia. Nama file halaman, meskipun, lebih merupakan bagian dalam ...

Bagaimana Mencocokkan Email Pemasaran dengan Brand Anda - dummies

Bagaimana Mencocokkan Email Pemasaran dengan Brand Anda - dummies

Branding e-mail pemasaran Anda membantu audiens Anda untuk segera mengenali dan membedakan e-mail Anda dari e-mail asing yang mereka terima. Menjaga pencitraan e-mail Anda konsisten dari waktu ke waktu memungkinkan penerima Anda mengenal Anda dan e-mail karena mereka menerima beberapa e-mail dari Anda. Semua komunikasi bisnis Anda harus mengandung elemen pencitraan merek yang konsisten, dan ...