Rumah Keuangan Pribadi C ++ Programming: Kapan Fungsi Virtual Tidak? - dummies

C ++ Programming: Kapan Fungsi Virtual Tidak? - dummies

Video: Map of Computer Science 2024

Video: Map of Computer Science 2024
Anonim

Di C ++, hanya karena Anda berpikir bahwa panggilan fungsi tertentu terlewati tidak berarti itu sebenarnya. Jika tidak dideklarasikan dengan argumen yang sama di subclass, fungsi anggota tidak ditimpa secara polimorfik, apakah dinyatakan tidak bersifat virtual atau tidak.

Satu pengecualian pada aturan deklarasi yang sama adalah bahwa jika fungsi anggota di kelas dasar mengembalikan pointer atau referensi ke objek kelas dasar, fungsi anggota yang ditimpa dalam subkelas dapat mengembalikan pointer atau referensi ke objek subkelas. Dengan kata lain, fungsi makeACopy () bersifat polimorfik, meskipun tipe kembalian dari dua fungsi berbeda:

class Base {public: // kembalikan salinan objek saat ini Base * makeACopy ();}; class SubClass: public base {public: // mengembalikan salinan objek saat ini SubClass * makeACopy ();}; void fn (Base & bc) {Base * pCopy = bc. makeACopy (); // lanjutkan di …}

Dalam prakteknya, ini sangat wajar. Fungsi makeACopy () harus mengembalikan objek tipe SubClass , meskipun mungkin menimpa BaseClass:: makeACopy () .

Bisnis ini diam-diam memutuskan kapan sebuah fungsi diganti dan bila bukan merupakan sumber kesalahan di C ++; begitu banyak sehingga standar 2011 memperkenalkan deskriptor mengesampingkan yang dapat digunakan pemrogram untuk menunjukkan bahwa dia bermaksud untuk mengganti fungsi kelas dasar.

C ++ menghasilkan kesalahan kompilator jika sebuah fungsi dinyatakan mengesampingkan namun sebenarnya, tidak, menimpa fungsi kelas dasar karena beberapa alasan (seperti argumen yang tidak sesuai) seperti pada contoh berikut: >

class Student {public: virtual void addCourseGrade (kelas dua);}; kelas GradStudent: public Student {public: virtual void addCourseGrade (float grade) override;};
Potongan ini menghasilkan kesalahan waktu kompilasi karena metode GradStudent:: addCourseGrade (float) telah diumumkan menggantikannya tapi sebenarnya tidak menggantikan fungsi kelas dasar Student:: addCourseGrade (double) karena tipe argumen don ' t cocok

Pemrogram juga dapat mendeklarasikan fungsi sebagai tidak overrideable dengan menggunakan kata kunci

final , walaupun fungsi itu sendiri menggantikan beberapa fungsi kelas dasar sebelumnya, seperti yang ditunjukkan pada tambahan berikut > PostDoc kelas: kelas GradStudent: public Student {public: virtual void addCourseGrade (kelas ganda) final;}; kelas PostDoc: public GradStudent {public: virtual void addCourseGrade (kelas dua);}; Karena Siswa:: addCourseGrade () ditandai akhir

,

deklarasi PostDoc:: addCourseGrade () menghasilkan kesalahan karena mencoba untuk mengganti metode Siswa .

Selain itu, seluruh kelas dapat dinyatakan

final:

kelas GradStudent final: public Student Ini mempengaruhi lebih dari sekedar metode virtual kelas. Kelas

final

tidak dapat diwarisi sama sekali.

C ++ Programming: Kapan Fungsi Virtual Tidak? - dummies

Pilihan Editor

Membuat Kartu Ucapan di Microsoft Word 2003 - dummies

Membuat Kartu Ucapan di Microsoft Word 2003 - dummies

Jika Anda ingin membuat sesuatu di Word yang hanya akan menyilaukan seseorang, coba tangan Anda dengan kartu ucapan yang disesuaikan. Untuk mengatur Word agar membuat kartu ucapan dari satu lembar kertas ukuran standar, ikuti langkah-langkah ini: 1. Pilih File -> Page Setup. 2. Klik tab Margins. 3. Pilih Landscape ...

Membuat Index of Word 2007 Document - dummies

Membuat Index of Word 2007 Document - dummies

Jika Anda ingin membuat indeks untuk Word Anda Dokumen 2007, tugas pertama adalah menandai kata atau frasa yang ingin Anda sertakan dalam indeks. Cara yang paling umum untuk melakukannya adalah dengan memasukkan penanda indeks dalam dokumen pada setiap kemunculan setiap item yang ingin Anda tampilkan ...

Editing di Word 2007: Melacak Perubahan dan Review - dummies

Editing di Word 2007: Melacak Perubahan dan Review - dummies

Menulis adalah seni yang sepi ... yaitu , sampai editor muncul. Mereka akan membuat revisi dengan menambahkan karya tulis Anda dengan hati-hati, memindahkan barang-barang, dan menghapus teks (Aduh!). Tidak ada cara untuk mengidentifikasi teks asli Anda dari teks yang dimodifikasi - kecuali jika Anda menggunakan alat Pelacakan Lagu Word 2007. Pelacakan perubahan sebagai ...

Pilihan Editor

Bagaimana Menonaktifkan dan Mengaktifkan Halaman di Squarespace - dummies

Bagaimana Menonaktifkan dan Mengaktifkan Halaman di Squarespace - dummies

Saat Anda melakukan pemeliharaan situs, kemungkinan besar Anda ingin menonaktifkan halaman situs Anda yang sedang dibangun. Squarespace memungkinkan Anda untuk dengan mudah menonaktifkan dan mengaktifkan kembali halaman. Bagaimana cara menonaktifkan halaman di Squarespace Jika Anda ingin menonaktifkan halaman di situs Anda, Anda dapat melakukannya di ...

Bagaimana Menentukan Navigasi Situs Anda di Squarespace - dummies

Bagaimana Menentukan Navigasi Situs Anda di Squarespace - dummies

Template yang Anda pilih di Squarespace mendikte berbagai area navigasi yang Anda miliki di situs Anda. Template Anda mungkin menyediakan area navigasi berikut di Pengelola Konten: Atas / Utama: Semua template memiliki navigasi teratas atau utama. Sekunder: Halaman yang ditambahkan ke area navigasi ini bukan fokus utama situs Anda. Footer: Beberapa template memiliki ...

Bagaimana Menemukan Editor Gaya Squarespace - dummies

Bagaimana Menemukan Editor Gaya Squarespace - dummies

Anda menggunakan Editor Gaya di Squarespace kapan saja Anda perlu memodifikasi desain situs Anda atau elemen tertentu di situs Anda. Style Editor adalah bagian dari mode Style, yang Anda akses di area Preview. Ikuti langkah-langkah ini untuk memuat Editor Gaya di browser Anda: Masuk ke situs web Anda. Anda ...

Pilihan Editor

Bagaimana Memodifikasi Master Slide di PowerPoint 2016 - dummies

Bagaimana Memodifikasi Master Slide di PowerPoint 2016 - dummies

Jika Anda tidak menyukai tata letak dari slide Anda dalam presentasi PowerPoint 2016, hubungi Master Slide dan lakukan sesuatu tentang hal itu, seperti yang ditunjukkan pada langkah-langkah ini: Buka Slide Master View dengan membuka tab View pada Ribbon dan kemudian klik tombol Slide Master, yang terdapat dalam Presentasi Grup tampilan Sebagai alternatif, ...

Bagaimana Memodifikasi Grafis SmartArt di PowerPoint - dummies

Bagaimana Memodifikasi Grafis SmartArt di PowerPoint - dummies

Setelah membuat grafik SmartArt dalam presentasi PowerPoint Anda, Anda mungkin ingin mengubahnya. Modifikasi dapat mencakup perubahan jenis atau tata letak grafis, menambah atau menghapus bentuk, dan mengubah urutan bentuk bentuk. Pada slide 1, klik bingkai grafis SmartArt untuk memilih keseluruhan grafik. Klik SmartArt Tools ...