Rumah Keuangan Pribadi Pengetik yang sangat diketik dalam pemrograman C ++ - dummies

Pengetik yang sangat diketik dalam pemrograman C ++ - dummies

Video: Enumerasi TSP/PSP NusaBarung 2024

Video: Enumerasi TSP/PSP NusaBarung 2024
Anonim

Pemrograman adalah semua tentang keterbacaan. Ini sulit (sebenarnya tidak mungkin) menulis dan memelihara program yang tidak bisa Anda baca. Bagian dari membaca daftar kode sumber adalah memahami apa yang digunakan dalam program. Bantuan paling dasar yang diberikan C ++ adalah #define yang ada di mana-mana, seperti contoh berikut yang dikutip:

#define PI 3. 141592653589793

Solusi ini tidak masalah untuk nilai individual, meskipun ia merasa bahwa #define mekanisme tidak (benar-benar berbicara) bagian dari C / C + + sejak preprocessor berjalan sebelum compiler. Sebagai tanggapan terhadap hal tersebut, C ++ 2011 memperkenalkan konstruk konstan :

constexpr long double PI = 3. 141592653589793;

Kata kunci constexpr membawa konstanta ke dalam tenda C + +. PI ini memiliki tipe yang nyata, seperti variabel C ++ lainnya. C ++ dapat menghasilkan pesan kesalahan dengan PI yang lebih masuk akal daripada yang melibatkan 3. 14159.

Ungkapan konstan baik untuk nilai konstan individu, namun sering kali konstanta mewakili himpunan benda dan bukan konstanta alami, seperti pada contoh berikut:

#define DC_OR_TERRITORY 0 #define ALABAMA 1 #define ALASKA 2 #define ARKANSAS 3 // … dan seterusnya …

Mungkin konstanta ini digunakan untuk mengidentifikasi negara bagian, mungkin digunakan sebagai sebuah indeks ke dalam array objek negara atau sebagai nilai dalam database di suatu tempat.

C ++ telah lama memiliki mekanisme yang lebih baik untuk menentukan jenis konstanta ini - enumerasi:

enum STATE {DC_OR_TERRITORY, // mendapatkan 0 ALABAMA, // mendapatkan 1 ALASKA, // mendapatkan 2 ARKANSAS, // … dan seterusnya …};

Kata kunci enum mengenalkan rangkaian konstanta yang disebut "enumerasi". Dalam hal ini, pencacahan tersebut membawa nama NEGARA. Setiap elemen dari enumerasi ini diberi nilai mulai dari 0 dan meningkat secara berurutan sebesar 1, jadi DC_OR_TERRITORY didefinisikan sebagai 0, ALABAMA didefinisikan sebagai 1, dan seterusnya. Anda dapat mengganti urutan tambahan ini dengan menggunakan pernyataan assign sebagai berikut:

enum STATE {DC, TERRITORY = 0, ALABAMA, ALASKA, // … dan seterusnya …};

Versi NEGARA ini mendefinisikan sebuah elemen DC, yang diberi nilai 0. Kemudian mendefinisikan elemen baru TERRITORY, yang juga diberi nilai 0. ALABAMA mengambil 1, sama seperti sebelumnya.

Dalam prakteknya, pemrogram dapat menggunakan enumerasi untuk menulis kode yang cukup mudah dibaca seperti berikut ini:

pajak dua kali pajak (NEGARA) {return tax pricesByState [s];}

Satu-satunya masalah dengan pendekatan ini adalah bahwa penghitungan ini tidak menciptakan tipe baru (seperti yang mungkin Anda pikirkan).Sebenarnya, menurut standarnya, STATE hanyalah nama lain untuk int - dan konstanta ALABAMA, ALASKA, dan seterusnya adalah tipe int const.

Kompiler gcc sebenarnya menyediakan enum yang dideklarasikan dengan cara ini sedikit lebih banyak otoritas daripada hanya menyebutnya bentuk int lain. Anda sebenarnya dapat membebani fungsi berdasarkan tipe enum:

void fn (STATE s); void fn (int n); fn (ALASKA); // invokes fn (STATE)

Standar 2011 memungkinkan programmer membuat tipe yang sama sekali baru dengan menggunakan kata kunci enum. Karena pencipta standar baru tidak ingin melanggar kode yang ada, standar memerlukan penambahan kata kunci tambahan untuk menentukan jenis enumerasi, seperti pada contoh berikut:

kelas enum NEGARA {DC, TERRITORY = 0, ALABAMA, ALASKA, // … dan seterusnya …};

Kelas enumerasi sekarang merupakan tipe skala penuh seperti kelas yang ditentukan pengguna lainnya. Hal berikut ini bahkan tidak legal lagi karena dua alasan:

int s = ALASKA;

Pertama, ALASKA konstan hanya didefinisikan dalam namespace NEGARA. Dengan demikian, nama konstanta adalah NEGARA:: ALASKA. Kedua, tipe tidak int tapi STATE. Anda tidak dapat menetapkan nilai tipe STATE ke int.

NEGARA s = NEGARA:: ALASKA;

Pemrogram dapat menyusun ulang sebuah STATE ke int tapi dia harus melakukannya secara eksplisit - sedikitpun konversi tidak memotongnya dengan kelas enumerasi:

int n = (int) STATE:: ALASKA;

Jenis enum baru ini juga dapat didasarkan pada salah satu tipe nomor penghitungan lainnya selain hanya int:

kelas enum NEGARA: char {DC, // … sisa deklarasi sama
Pengetik yang sangat diketik dalam pemrograman 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 ...