Rumah >pembangunan bahagian belakang >C++ >Bilakah Ia Boleh Diterima untuk Mewarisi daripada Kelas Perpustakaan Standard C?

Bilakah Ia Boleh Diterima untuk Mewarisi daripada Kelas Perpustakaan Standard C?

Susan Sarandon
Susan Sarandonasal
2024-11-03 13:28:03551semak imbas

When is It Acceptable to Inherit from C   Standard Library Classes?

Memperluas Perpustakaan Standard C melalui Warisan

Walaupun sering diandaikan bahawa mewarisi daripada kelas Perpustakaan Standard C tidak diingini, terdapat pengecualian yang ketara .

Kelas Boleh Dikenalpasti untuk Warisan

Menentukan sama ada kelas Perpustakaan Standard bertujuan untuk warisan boleh menjadi mencabar. Walau bagaimanapun, garis panduan berikut boleh memberikan beberapa cerapan:

  • Jika kelas mempunyai kaedah maya, ia adalah calon yang mungkin untuk warisan.
  • Pengisytiharan "rakan" yang berlebihan menunjukkan isu pengkapsulan, membuat pewarisan kurang sesuai.
  • Templat perlu dipertimbangkan untuk pengkhususan dan bukannya warisan.
  • Mekanisme berasaskan dasar, seperti std::char_traits, mencadangkan pewarisan tidak dimaksudkan.

Keperluan Kelas Terbitan

Apabila mewarisi daripada kelas Perpustakaan Standard, Prinsip Penggantian Liskov (LSP) hendaklah digunakan. Tingkah laku yang boleh diperhatikan, seperti fungsi what() dalam std::exception, harus sepadan dengan kelas asas. Pematuhan kepada Piawaian kurang membimbangkan daripada ketepatan dalam konteks ini.

Kesimpulan

Walaupun Standard itu sendiri tidak mempunyai panduan yang jelas tentang memperluaskan Perpustakaan Standard, adalah penting untuk pertimbangkan dengan teliti penggunaan kelas yang dimaksudkan dan gunakan prinsip pewarisan dengan bijak.

Atas ialah kandungan terperinci Bilakah Ia Boleh Diterima untuk Mewarisi daripada Kelas Perpustakaan Standard C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn