Apakah perbezaan antara kelas generik dan templat fungsi?

WBOY
Lepaskan: 2024-04-24 21:57:01
asal
349 orang telah melayarinya

Kelas generik mentakrifkan jenis data baharu, manakala templat fungsi mentakrifkan algoritma. Kelas generik dijadikan instantiated dengan menentukan parameter jenis, dan templat fungsi dijadikan instantiated melalui panggilan. Kelas generik boleh mewarisi, tetapi templat fungsi tidak boleh.

Apakah perbezaan antara kelas generik dan templat fungsi?

Perbezaan antara kelas generik dan templat fungsi

Kelas generik dan templat fungsi ialah kedua-dua alat berkuasa dalam C++ untuk mencipta kod boleh guna semula. Mereka membenarkan kami membuat kelas dan fungsi yang berfungsi dengan berbilang jenis data tanpa menulis kod berasingan untuk setiap jenis.

Kelas generik mengandungi satu atau lebih jenis parameter yang menentukan gelagat kelas. Parameter jenis ini disediakan apabila membuat instantiate kelas, membenarkan kelas disesuaikan kepada jenis data tertentu.

Templat fungsi adalah serupa dengan kelas generik, tetapi ia berfungsi pada fungsi. Ia mengandungi satu atau lebih jenis parameter yang menentukan tingkah laku fungsi. Parameter jenis ini disediakan semasa memanggil fungsi, membenarkan fungsi disesuaikan kepada jenis data tertentu.

Perbezaan utama:

  • Skop: Kelas generik mentakrifkan jenis data baharu, manakala templat fungsi mentakrifkan algoritma.
  • Instantiation: Kelas generik dibuat instantiated dengan menyatakan parameter jenis menggunakan . Templat fungsi memanggil kejadian dengan menghantar parameter jenis.
  • Warisan: Kelas generik boleh diperoleh daripada kelas generik lain, tetapi templat fungsi tidak boleh.

Kes praktikal:

Kelas generik:

template<typename T>
class MyVector {
public:
    T* data;
    int size;

    // ... 操作
};

// 实例化:
MyVector<int> intVector;
Salin selepas log masuk

Templat fungsi:

template<typename T>
T max(T a, T b) {
    return (a > b) ? a : b;
}

// 调用:
int maxInt = max<int>(10, 20);
Salin selepas log masuk

Kelas generik:

rrreee

Templat fungsi: 🎜🎜rrreee🎜🎜Kesimpulan yang boleh digunakan untuk kelas kod boleh guna semula. Memahami perbezaan mereka adalah penting dalam memilih alat yang paling sesuai dengan keperluan khusus anda. Kelas generik sesuai untuk mencipta jenis data baharu, manakala templat fungsi sesuai untuk mencipta operasi data yang digunakan untuk berbilang jenis. 🎜

Atas ialah kandungan terperinci Apakah perbezaan antara kelas generik dan templat fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!