Bagaimanakah anda boleh mencapai pengkhususan separa fungsi ahli dalam kelas templat dalam C?

Mary-Kate Olsen
Lepaskan: 2024-11-16 10:46:03
asal
600 orang telah melayarinya

How can you achieve partial specialization of a member function within a template class in C  ?

Pengkhususan Separa Fungsi Ahli Kelas

Tidak seperti fungsi biasa, pengkhususan sebahagiannya hanya fungsi ahli dalam kelas templat tidak dibenarkan dalam C . Sebaliknya, adalah perlu untuk mengkhususkan sebahagian keseluruhan kelas.

Untuk mencapai pengkhususan separa fungsi ahli, langkah berikut perlu diambil:

  1. Isytiharkan kelas templat khusus sepenuhnya untuk nilai khusus parameter templat yang memerlukan fungsi ahli khusus.
  2. Dalam templat kelas khusus, tentukan fungsi ahli yang diingini.

Contohnya, untuk mencipta pengkhususan separa untuk fungsi ahli Deform() dalam kod yang diberikan dengan nValue sama dengan 0, kod berikut menunjukkan cara untuk membetulkan kod asal:

// Partial specialization of the Object class for nValue = 0
template <>
class Object<int, 0>
{
private:
    int m_t;
    Object();
public:
    Object(int t): m_t(t) {}
    int Get() { return m_t; }
    Object& Deform()
    {
        std::cout << "Specialized\n";
        m_t = -1;
        return *this;
    }
};
Salin selepas log masuk

Dengan pengubahsuaian ini, kod kini akan mengkhususkan sebahagiannya dengan betul Deform() fungsi ahli untuk nValue bersamaan dengan 0.

Atas ialah kandungan terperinci Bagaimanakah anda boleh mencapai pengkhususan separa fungsi ahli dalam kelas templat dalam C?. 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