Bagaimana untuk melaksanakan kelas generik dalam C++?

王林
Lepaskan: 2024-06-06 13:13:57
asal
521 orang telah melayarinya

Melaksanakan kelas generik dalam C++: menggunakan templat, ruang letak untuk jenis tertentu. Buat contoh kelas generik, menentukan parameter jenis. Kelas generik membenarkan kod yang sama digunakan untuk jenis data yang berbeza. Aplikasi praktikal: Gunakan kelas StudentArray generik untuk menyimpan dan memproses pelbagai jenis data, seperti nama pelajar.

Bagaimana untuk melaksanakan kelas generik dalam C++?

Cara Melaksanakan Kelas Generik dalam C++

Kelas generik membolehkan anda mencipta kod yang boleh menggunakan jenis data yang berbeza berdasarkan parameter jenis tanpa pengubahsuaian. Begini caranya untuk melaksanakan kelas generik dalam C++:

#include <iostream>

template <typename T>
class GenericClass {
public:
    GenericClass(T value) : val(value) {}
    void print() {
        std::cout << "Value: " << val << std::endl;
    }
private:
    T val;
};
Salin selepas log masuk

Dalam contoh ini, GenericClass 是一个泛型类,T ialah pemegang tempat untuk jenis tersebut. Anda boleh membuat contoh kelas generik dengan menentukan parameter jenis. Contohnya:

GenericClass<int> intClass(10);
GenericClass<std::string> strClass("Hello");

intClass.print();  // 输出:“Value:10”
strClass.print();  // 输出:“Value:Hello”
Salin selepas log masuk

Kes praktikal:

Pertimbangkan tatasusunan yang mengandungi nama pelajar. Kita boleh menggunakan kelas generik untuk menyimpan dan memproses jenis data yang berbeza, contohnya:

template <typename T>
class StudentArray {
public:
    StudentArray(size_t size) : arr(new T[size]) {}
    void add(T name, int index) {
        arr[index] = name;
    }
    void print() {
        for (size_t i = 0; i < size(); ++i) {
            std::cout << "Student " << (i + 1) << ": " << arr[i] << std::endl;
        }
    }
    size_t size() {
        return size_;
    }
private:
    T* arr;
    size_t size_;
};

int main() {
    StudentArray<std::string> names(5);

    names.add("John", 0);
    names.add("Jane", 1);
    names.add("Peter", 2);
    names.add("Susan", 3);
    names.add("Thomas", 4);

    names.print();
}
Salin selepas log masuk

Kod ini mencipta tatasusunan generik yang mengandungi 5 rentetan. Ia mempunyai keupayaan untuk menambah dan mencetak nama pelajar.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kelas generik dalam C++?. 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!