Rumah > pembangunan bahagian belakang > C++ > Bolehkah Kami Memanjangkan Perpustakaan Standard C Melalui Pewarisan?

Bolehkah Kami Memanjangkan Perpustakaan Standard C Melalui Pewarisan?

Mary-Kate Olsen
Lepaskan: 2024-11-05 05:07:02
asal
209 orang telah melayarinya

Can We Extend the C   Standard Library Through Inheritance?

Memperluas Perpustakaan Standard C melalui Warisan

Persepsi umum ialah perpustakaan standard C tidak dimaksudkan untuk diperluaskan melalui warisan. Walau bagaimanapun, kewujudan std::exception mencabar tanggapan ini. Oleh itu, soalan-soalan berikut timbul:

Bolehkah Kelas Perpustakaan Standard Dilanjutkan Secara Warisan?

Selain std::exception, tidak jelas kelas perpustakaan standard yang lain dimaksudkan untuk diwarisi. Pendekatan praktikal untuk menentukan calon yang sesuai adalah seperti berikut:

  • Semak Kaedah Maya: Kelas dengan kaedah maya ialah calon berpotensi untuk kelas asas.
  • Elakkan Kelas dengan Pengisytiharan Rakan: Isu enkapsulasi mungkin menjadikan warisan bermasalah.
  • Pertimbangkan Templat: Penyesuaian melalui pengkhususan mungkin lebih baik daripada warisan untuk templat.
  • Berwaspada Dengan Mekanisme Berasaskan Polisi: Mekanisme ini mencadangkan bahawa warisan tidak digalakkan.

Implikasi Pewarisan daripada Kelas Perpustakaan Standard

Apabila mewarisi daripada kelas perpustakaan standard seperti std::exception, boleh dipertikaikan sama ada subkelas mesti mematuhi antara muka asal. Walau bagaimanapun, "Prinsip Penggantian Liskov" (LSP) mencadangkan bahawa kelakuan subkelas harus selaras dengan kelas asas setakat klien berkenaan.

Oleh itu, ia dianggap sebagai amalan terbaik untuk pastikan fungsi ahli what() subkelas mengembalikan penunjuk bukan nol, walaupun Standard tidak secara eksplisit memerlukan ini untuk subkelas std::exception.

Atas ialah kandungan terperinci Bolehkah Kami Memanjangkan Perpustakaan Standard C Melalui Pewarisan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan