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

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 ...