Code前端首页关于Code前端联系我们

如何使用C++类模板定义通用数据结构

terry 2年前 (2023-10-01) 阅读数 257 #c++
文章标签 winxpphpmysql

一、什么是类模板

在C++中,类模板是一种通用的类定义,可以将类型参数化,使得该类可以适用于多种数据类型。类模板中的成员函数和成员变量是没有具体实现的,只有在使用时才被实例化。使用类模板的主要优点是可以减少代码冗余,提高代码复用性,降低维护成本。

template 
class Stack {
private:
    T* _data;
    int _top;
    int _size;
public:
    Stack(int size = 100) : _data(new T[size]), _top(-1), _size(size) {}
    ~Stack() { delete[] _data; }
    void push(T val);
    T pop();
    bool isEmpty() const { return _top == -1; }
    bool isFull() const { return _top == _size - 1; }
};

template 
void Stack::push(T val) {
    if (isFull()) {
        throw std::overflow_error("Stack is full.");
    }
    _data[++_top] = val;
}

template 
T Stack::pop() {
    if (isEmpty()) {
        throw std::underflow_error("Stack is empty.");
    }
    return _data[_top--];
}

二、类模板的使用

使用类模板需要指定具体的类型,可以采用显式实例化或隐式实例化两种方式。

显式实例化是在代码中指定类型参数,编译器会将模板代码实例化成具体类型的代码,生成可执行文件。

void testStack() {
    Stack intStack;
    intStack.push(1);
    intStack.push(2);
    intStack.push(3);
    cout 

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门