Rumah Keuangan Pribadi 8 C ++ Fitur Not-So-Beginner - dummies

8 C ++ Fitur Not-So-Beginner - dummies

Daftar Isi:

Video: Introduction to programming || C Programming Tutorial Beginner to Advanced 2024

Video: Introduction to programming || C Programming Tutorial Beginner to Advanced 2024
Anonim

Bahasa C ++ berisi begitu banyak fitur yang mungkin tidak dapat dimengerti oleh pemrogram awal. Untungnya, Anda tidak perlu menguasai semua fitur bahasa untuk menulis program dunia nyata yang hebat. Berikut adalah sepuluh fitur yang mungkin ingin Anda lihat, kalau-kalau Anda melihatnya di program orang lain.

Perintah C ++ goto

Perintah ini berjalan sampai kembali ke C, nenek moyang dari C ++. Pada prinsipnya, menggunakan perintah ini mudah dilakukan. Anda bisa menempatkan label goto; dimanapun kamu mau. Saat C ++ menemukan perintah ini, kontrol langsung lolos ke label, seperti yang ditunjukkan pada cuplikan kode ini:

untuk (;;) {if (ekspresi kondisional) {goto outahere;} // … apapun yang anda mau …} outahere: // … program berlanjut disini …

Dalam praktiknya, goto mengenalkan banyak cara untuk mengacaukan. Bagaimanapun, tidak butuh waktu lama sebelum programmer memperhatikan bahwa dua penggunaan goto yang paling umum adalah untuk keluar dari loop dan menuju ke kasus berikutnya dalam satu lingkaran. Komite Standar C memperkenalkan break dan continue dan hampir sepenuhnya menghilangkan kebutuhan akan perintah goto.

Operator terner

adalah operator yang unik untuk C dan C ++. Ia bekerja sebagai berikut: int n = (bersyarat)? expression1: expression2;

itu? operator pertama mengevaluasi kondisional. Jika kondisinya benar, maka nilai ungkapannya sama dengan nilai ekspresi1; Jika tidak, itu sama dengan nilai ekspresi2.

Misalnya, Anda bisa menerapkan fungsi maksimum () sebagai berikut:

int max (int n1, int n2) {return (n1> n2)? n1: n2;}
Operator terner dapat diaplikasikan pada jenis numerik namun tidak dapat kelebihan beban. Operator terner benar-benar sebuah ungkapan - bukan pernyataan kontrol seperti if.

Jenis yang dicacah di C + +

Gagasan sederhananya adalah Anda dapat mendefinisikan konstanta dan membiarkan C ++ menugaskan nilai mereka, seperti yang ditunjukkan di sini:

enum Colour {BLACK, BLUE, GREEN, YELLOW, RED}; Warna myColor = BLACK;

Masalah dengan jenis yang disebutkan di sini terletak pada penerapannya: Daripada membuat jenis yang benar, C ++ menggunakan bilangan bulat. Dalam kasus ini, BLACK diberi nilai 0, BLUE diberi 1, GREEN2, dan seterusnya.

Perpustakaan Standar 2011 untuk C ++ "memperbaiki" masalah ini dengan membuat jenis kelas yang disebutkan seperti yang ditunjukkan pada cuplikan berikut:

kelas enum Warna {BLACK, BLUE, GREEN, YELLOW, RED}; Warna myColor = Warna:: BLACK;

Pada versi ini, Warna adalah tipe baru.Masing-masing konstanta, BLACK, BLUE, dan sebagainya, adalah anggota tipe Colors. Anda masih bisa melemparkan objek Warna kelas ke int, tapi pemeran implisit tidak diijinkan.

C + + namespaces

Mungkin untuk memberikan entitas yang berbeda dalam dua pustaka yang berbeda dengan nama yang sama. Misalnya, fungsi kelas () di perpustakaan Pelajar mungkin memberi nilai, sedangkan fungsi kelas () di perpustakaan CivilEngineering dapat mengatur kemiringan di sisi bukit. Untuk menghindari masalah ini, C ++ memungkinkan programmer untuk menempatkan kodenya di ruang nama yang terpisah. Dengan demikian kelas dalam ruang nama Siswa berbeda dari kelas dalam CivilEngineering.

Ruang nama di atas dan di luar nama kelas. Fungsi kelas () anggota kelas BullDozer di namespace CivilEngineering memiliki nama extended CivilEngineering:: BullDozer:: grade ().

Semua objek dan fungsi perpustakaan ada di ruang nama std. Pernyataan di awal template program menggunakan namespace std; mengatakan bahwa jika Anda tidak melihat objek yang ditentukan dalam namespace default, maka lihatlah di std.

Fungsi virtual murni di C ++

Anda tidak perlu mendefinisikan fungsi yang dideklarasikan secara virtual. Fungsi undefined seperti itu dikenal sebagai fungsi anggota virtual murni

. Pada saat itu, bagaimanapun, hal menjadi rumit. Misalnya, kelas dengan satu atau lebih fungsi virtual murni dikatakan abstrak dan tidak bisa digunakan untuk membuat objek. Tangani masalah ini setelah Anda merasa nyaman dengan fungsi virtual dan terlambat mengikat. Kelas string C ++

Kebanyakan bahasa menyertakan kelas string sebagai tipe intrinsik untuk menangani string karakter dengan mudah. Secara teori, kelas string harus melakukan hal yang sama untuk C ++. Namun, dalam praktiknya, itu tidak sesederhana itu. Karena string bukanlah tipe intrinsik, pesan kesalahan yang dihasilkan oleh compiler saat terjadi kesalahan lebih mirip dengan yang terkait dengan kelas yang ditentukan pengguna. Bagi pemula, pesan ini bisa sangat sulit untuk ditafsirkan. String

bahkan bukan kelas. Ini adalah contoh kelas template. Pesan error bisa jadi menakjubkan.

Beberapa pewarisan di C ++

Satu kelas benar-benar dapat memperpanjang lebih dari satu kelas dasar. Ini terdengar sederhana namun bisa menjadi sangat rumit ketika kedua kelas dasar tersebut berisi fungsi anggota dengan nama yang sama. Yang lebih buruk lagi adalah ketika kedua kelas dasar itu sendiri merupakan subkelas dari beberapa kelas umum.

Sebenarnya, begitu banyak masalah muncul bahwa C ++ adalah satu bahasa mirip C yang mendukung multiple inheritance. Java dan C #, kedua bahasa yang berasal dari C ++, memutuskan untuk menjatuhkan dukungan untuk multiple inheritance.

C ++ template dan Perpustakaan Template Standar

Pembuat C ++ melihat bagaimana fungsi serupa seperti berikut ini:

int max (int n1, int n2) {if (n1> n2) {return n1;} return n2;} double max (double n1, double n2) {if (n1> n2) {return n1;} return n2;} char max (char n1, char n2) {if (n1> n2) {return n1;} return n2;}

"Tidakkah itu keren," kata seseorang kepada yang lain, "jika Anda bisa mengganti tipe itu dengan tipe pseudo-tipe yang dapat Anda tentukan pada waktu kompilasi?"Sebelum Anda menyadarinya, template presto menjadi bagian dari template C ++:

T max (T t1, T t2) {if (t1> t2) {return t1;} return t2;}

Sekarang pemrogram dapat buat max (int, int) dengan mengganti T dengan int dan kompilasi hasilnya, buat max (double, double) dengan mengganti T dengan double, dan sebagainya. Komite Standar bahkan merilis keseluruhan perpustakaan kelas, yang dikenal sebagai Perpustakaan Template Standar (STL untuk jangka pendek), berdasarkan kelas template.

Bagi pemula, subjek kelas template mulai sintaksis sangat rumit. Selain itu, kesalahan yang dihasilkan oleh compiler saat Anda mendapatkan template Instansiasi yang salah membingungkan seorang ahli, apalagi pemula. Ini jelas topik yang perlu ditunggu sampai Anda merasa nyaman dengan bahasa dasarnya.

8 C ++ Fitur Not-So-Beginner - 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 ...