Rumah Keuangan Pribadi Anjak piutang dan warisan di C ++ - dummies

Anjak piutang dan warisan di C ++ - dummies

Video: Evolution All Stars at STIM YKPN 2011 2024

Video: Evolution All Stars at STIM YKPN 2011 2024
Anonim

Konsep pewarisan, dan karenanya anjak piutang, di C ++ memungkinkan satu kelas mewarisi sifat kelas dasar. Warisan memiliki sejumlah tujuan; Manfaat utama warisan adalah kemampuan untuk menunjukkan hubungan antar kelas. Ini adalah apa yang disebut hubungan IS_A - MicrowaveOven IS_A Oven dan hal-hal seperti itu.

Anjak adalah hal yang bagus jika Anda membuat korelasi yang benar. Misalnya, microwave versus hubungan oven konvensional nampaknya alami. Klaim bahwa microwave adalah jenis pemanggang roti khusus, dan Anda menuju masalah. Benar, mereka berdua membuat hal-hal menjadi panas, mereka berdua menggunakan listrik, dan keduanya sama-sama ditemukan di dapur, namun kemiripannya berakhir di sana - microwave tidak bisa membuat roti panggang dan pemanggang roti tidak bisa membuat nachos.

Mengidentifikasi kelas yang melekat dalam masalah dan menggambar hubungan yang benar di antara kelas-kelas ini adalah proses yang dikenal sebagai anjak 999. (Kata itu terkait dengan aritmatika yang harus Anda lakukan di sekolah dasar: memberikan penjelasan tentang penyebut yang paling umum, misalnya, 12 sama dengan 2 kali 2 kali 3.) Inilah cara yang dapat Anda gunakan warisan untuk menyederhanakan program Anda menggunakan contoh rekening bank. Misalkan Anda diminta untuk menulis sebuah program bank sederhana yang menerapkan konsep rekening tabungan dan rekening giro.

Pemrogram berorientasi objek telah datang dengan cara yang ringkas untuk menggambarkan poin penting dari sebuah kelas dalam sebuah gambar. Kelas

Memeriksa dan Simpan di ditunjukkan pada gambar ini. (Ini hanya salah satu dari beberapa cara untuk mengungkapkan hal yang sama secara grafis.) Memeriksa

dan Tabungan. "> Kelas independen

Memeriksa dan Tabungan. Untuk membaca gambar ini dan tokoh lainnya, ingat yang berikut ini:

Kotak besar adalah kelas, dengan nama kelas di bagian atas.
  • Nama dalam kotak adalah fungsi anggota.

  • Nama yang tidak ada dalam kotak adalah data anggota.

  • Nama-nama yang meluas keluar dari kotak adalah anggota yang dapat diakses oleh umum; Artinya, anggota ini dapat diakses oleh fungsi yang bukan bagian dari kelas atau keturunannya. Anggota yang benar-benar berada di dalam kotak tidak dapat diakses dari luar kelas.

  • Panah tebal mewakili hubungan IS_A.

  • Panah tipis mewakili hubungan HAS_A.

  • Kendaraan Mobil IS_A

, tapi Mobil HAS_A Motor . Anda dapat melihat pada gambar pertama bahwa kelas

Memeriksa dan memiliki banyak kesamaan. Misalnya, kedua kelas memiliki fungsi penarikan () dan deposit () anggota.Karena kedua kelas itu tidak identik, bagaimanapun, mereka harus tetap sebagai kelas terpisah. (Dalam aplikasi bank real-life, kedua kelas akan jauh lebih berbeda daripada contoh ini.) Tetap saja, seharusnya ada cara untuk menghindari pengulangan ini. Anda bisa mendapatkan salah satu kelas ini dari yang lain. Tabungan

memiliki lebih banyak anggota daripada Memeriksa, sehingga Anda bisa membiarkan Tabungan mewarisi dari Memeriksa. Pengaturan ini ditunjukkan pada gambar berikut. Kelas Tabungan

mewarisi semua anggota. Kelas dilengkapi dengan penambahan data member noWithdrawals dan dengan mengesampingkan fungsi withdrawal () . Anda harus mengganti penarikan () karena aturan untuk menarik uang dari rekening tabungan berbeda dari yang menarik uang dari rekening giro. Tabungan diterapkan sebagai subkelas

Memeriksa. "> Tabungan diterapkan sebagai subkelas

Memeriksa. Meskipun membiarkan Tabungan

yang diwarisi dari Memeriksa adalah pekerjaan, itu tidak sepenuhnya memuaskan. Masalah utamanya adalah, seperti berat yang tercantum pada SIM saya, itu salah mengartikan kebenaran. Hubungan pewarisan ini menyiratkan bahwa rekening tabungan adalah jenis rekening giro khusus, yang sebenarnya tidak. Pernyataan keliru semacam itu membingungkan programmer, baik hari ini maupun hari esok. Suatu hari nanti, programmer yang tidak terbiasa dengan trik pemrograman kita harus membaca dan memahami apa kode kita. Representasi yang menyesatkan sulit untuk didamaikan dan dipahami. Selain itu, misrepresentasi semacam itu dapat menyebabkan masalah di jalan. Misalkan, misalnya, bahwa bank mengubah kebijakannya berkenaan dengan rekening giro. Katakanlah bahwa mereka memutuskan untuk mengenakan biaya layanan untuk mengecek rekening hanya jika saldo minimum turun di bawah nilai tertentu selama bulan tersebut.

Perubahan seperti ini dapat dengan mudah ditangani dengan sedikit perubahan pada kelas

Checking.

Anda harus menambahkan anggota data baru ke kelas Memeriksa untuk mencatat saldo minimum selama bulan tersebut. Ayo keluar pada anggota badan dan menyebutnya minimumBalance. Tapi sekarang Anda punya masalah. Karena Tabungan

mewarisi dari Memeriksa, Tabungan mendapatkan data anggota baru ini juga. Tidak ada gunanya bagi anggota ini karena saldo minimum tidak mempengaruhi rekening tabungan, jadi hanya duduk di sana. Ingatlah bahwa setiap objek rekening giro memiliki anggota minimumBalance tambahan ini. Salah satu anggota data tambahan mungkin bukan masalah besar, tapi ini menambah kebingungan lebih lanjut. Perubahan seperti ini menumpuk. Hari ini adalah anggota data ekstra - besok ini adalah fungsi anggota yang berubah. Akhirnya, kelas rekening tabungan membawa banyak bagasi ekstra yang hanya berlaku untuk rekening giro. Sekarang bank kembali dan memutuskan untuk mengubah beberapa kebijakan rekening tabungan. Ini mengharuskan Anda memodifikasi beberapa fungsi di

Checking.

Perubahan seperti ini di kelas dasar secara otomatis menyebar ke subkelas kecuali jika fungsinya sudah diganti di subclass Tabungan. Misalnya, anggaplah bank memutuskan untuk memberikan toaster untuk setiap deposit ke rekening giro. Tanpa bank (atau pemrogramnya) mengetahuinya, simpanan ke rekening giro akan menghasilkan sumbangan pemanggang roti secara otomatis. Kecuali Anda sangat berhati-hati, perubahan pada Memeriksa

mungkin tiba-tiba muncul di Tabungan . Bagaimana Anda bisa menghindari masalah ini? Mengklaim bahwa Memeriksa

adalah kasus khusus dari Tabungan namun tidak menyelesaikan masalah kami. Yang Anda butuhkan adalah kelas ketiga (sebut saja Akun, hanya untuk nyengir) yang mewujudkan hal-hal yang umum di antara Memeriksa dan Tabungan seperti yang ditunjukkan di sini. Memeriksa dan

Tabungan pada kelas Account yang sama. "> Basing Memeriksa

dan Tabungan pada kelas Account yang sama. Bagaimana membangun akun baru untuk memecahkan masalah? Pertama, menciptakan kelas Account

yang baru adalah deskripsi dunia nyata yang lebih akurat (apapun itu). Tentu saja, sebenarnya ada sesuatu yang dikenal sebagai akun. Rekening tabungan dan rekening giro adalah kasus khusus dari konsep yang lebih mendasar ini. Selain itu, kelas Tabungan

terisolasi dari perubahan ke kelas Memeriksa (dan sebaliknya). Jika bank menetapkan perubahan mendasar pada semua akun, Anda dapat memodifikasi Account, dan semua subclass akan secara otomatis mewarisi perubahan tersebut. Tetapi jika bank mengubah kebijakannya hanya untuk memeriksa rekening, Anda dapat memodifikasi hanya sekedar kelas Memeriksa tanpa mempengaruhi Tabungan . Proses pemusnahan properti umum dari kelas yang sama adalah esensi anjak kelas .

Anjak sah hanya jika hubungan pewarisan sesuai dengan kenyataan. Anjak bersama-sama dengan sebuah kelas Mouse

dan Joystick karena keduanya adalah perangkat penunjuk perangkat yang sah. Anjak bersama-sama kelas Mouse dan Tampilan karena keduanya sama-sama membuat panggilan sistem operasi tingkat rendah tidak.

Anjak piutang dan warisan 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 ...