php中文网

如何使用 C++ 函数模板创建泛型类?

php中文网

使用 C++ 函数模板创建泛型类

函数模板本质上与类的概念非常相似。可以创建泛型类(或参数化类),它根据类型参数来创建一个新类。

语法

template
class ClassName { ... };

立即学习“C++免费学习笔记(深入)”;

此语法声明一个模板,其中 T 是类型参数。

实战案例

创建一个用于存储和操作不同类型数据的泛型列表类:

// 泛型列表类
template<typename T>
class List {
private:
    struct Node {
        T data;
        Node *next;

        Node(const T& data) : data(data), next(nullptr) {}
    };

    Node *head;
    Node *tail;
    int size;

public:
    List() : head(nullptr), tail(nullptr), size(0) {}
    ~List() { clear(); }

    // 添加元素
    void push_back(const T& data) { ... }

    // 获取元素
    T& operator[](int index) { ... }

    // 删除元素
    void erase(int index) { ... }

    // 清空列表
    void clear() { ... }

    // 获取大小
    int getSize() { return size; }
};

用法

使用整数类型的泛型列表:

List<int> intList;
intList.push_back(10);
intList.push_back(20);
cout << intList[0] << endl; // 输出 10

使用字符串类型的泛型列表:

List<string> stringList;
stringList.push_back("Hello");
stringList.push_back("World");
cout << stringList[1] << endl; // 输出 "World"

通过函数模板创建泛型类,可以创建可用于操作不同类型数据的可重用和灵活的容器类。

以上就是如何使用 C++ 函数模板创建泛型类?的详细内容,更多请关注php中文网其它相关文章!