Rumah Keuangan Pribadi Bagaimana Polymorphism Bekerja di C ++ - dummies

Bagaimana Polymorphism Bekerja di C ++ - dummies

Video: Belajar Java #39 - Overload Method / Fungsi 2024

Video: Belajar Java #39 - Overload Method / Fungsi 2024
Anonim

Sebagai pembatas pagar, C ++ mendukung pengikatan awal dan akhir. Setiap bahasa pemrograman tertentu dapat mendukung pengikatan awal atau akhir berdasarkan keinginan para pengembangnya. Bahasa yang lebih tua seperti C cenderung mendukung pengikatan awal saja. Bahasa terbaru seperti Java dan C # hanya mendukung pengikatan yang terlambat.

Anda mungkin terkejut bahwa default untuk C ++ adalah pengikatan awal. Output dari program OverloadOverride seperti yang terlihat adalah sebagai berikut:

Kami di Siswa:: calcTuition Kami di Siswa:: calcTuition Tekan Enter untuk melanjutkan …

Alasannya sederhana, jika sedikit tertanggal. Pertama, C ++ harus bertindak sebanyak C mungkin secara default untuk mempertahankan kompatibilitas ke atas dengan pendahulunya. Kedua, polimorfisme menambahkan sejumlah kecil overhead ke setiap fungsi panggilan baik dalam hal penyimpanan data dan kode yang dibutuhkan untuk melakukan panggilan.

Pendiri C ++ khawatir bahwa overhead tambahan akan digunakan sebagai alasan untuk tidak mengadopsi C ++ sebagai bahasa pilihan sistem, jadi mereka membuat pengiriman awal yang lebih efisien secara default.

Untuk membuat fungsi anggota polimorfik, pemrogram harus menandai fungsinya dengan kata kunci C ++ virtual, seperti yang ditunjukkan pada modifikasi berikut pada deklarasi di OverloadOveride < program: class Student {public: virtual void calcTuition () {cout << "kita di Student:: calcTuition" << endl;}};

Kata kunci

virtual yang memberi tahu C ++ bahwa calcTuition () adalah fungsi anggota polimorfik. Artinya, menyatakan calcTuition () virtual berarti bahwa panggilan ke sana akan terikat terlambat jika ada keraguan mengenai tipe objek run-time yang digunakan oleh calcTuition ().

Melaksanakan program

OverloadOveride dengan calcTuition () yang menyatakan virtual menghasilkan output sebagai berikut: Kami berada di Student:: calcTuition Kami berada di GraduateStudent:: calcTuition Press Enter untuk melanjutkan …

Jika Anda merasa nyaman dengan debugger yang menyertai lingkungan C ++ Anda, Anda benar-benar harus melangkah satu langkah melalui contoh ini. Ini sangat keren untuk melihat program single-step menjadi Student:: calcTuition () pertama kalinya fn () dipanggil tapi masuk ke GraduateStudent:: calcTuition () pada panggilan kedua. Anda tidak dapat benar-benar menghargai polimorfisme sampai Anda mencobanya.

Anda perlu mendeklarasikan fungsi virtual hanya di kelas dasar. The "virtualness" dibawa ke subclass secara otomatis. Terkadang, bagaimanapun, programmer mengikuti standar pengkodean untuk menyatakan fungsi virtual di mana saja (hampir).

Bagaimana Polymorphism Bekerja 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 ...