C++--模板初阶--泛型编程--函数模板--类模板--实例化-隐式-显式
发布日期:2021-05-10 07:45:24 浏览次数:15 分类:精选文章

本文共 2561 字,大约阅读时间需要 8 分钟。

���������C++/STL���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������C++������������������������������������������

1. ������������

������

���������������������������������������������������������������������������������������������������������������������������������

template 
void Swap(T &a, T &b) {
T temp = a;
a = b;
b = temp;
}

��������� Swap<int>(5, 3) ��� Swap<double>(1.5, 2.3) ��������������������������� T ��������� int ��� double���������������������������������

���������������

  • ��������������������������������������������������������������������������������������������������� ���������

    void Test() {
    int a = 1, b = 2;
    char d = 'a', e = 'b';
    double f = 1.5, g = 2.5;
    Swap(a, b); // ������������������ int ���
    Swap(d, e); // ������������������ char ���
    Swap(f, g); // ������������������ double ���
    }
  • ������������������������������������������������������������������������ ���������

    void Test() {
    int a = 1, b = 2;
    char d = 'a', e = 'b';
    double f = 1.5, g = 2.5;
    Swap
    (a, e); // ������������������ int
    Swap
    (b, d); // ������������������ double
    }
  • 2. ���������

    ������

    ������������������������������������������������������������������������������������������������������������������������������������������������������

    template 
    class Vector {
    public:
    Vector(size_t capacity = 10) : _pData(new T[capacity]), _size(0), _capacity(capacity) {}
    ~Vector() {
    if (_pData) {
    delete[] _pData;
    _size = _capacity = 0;
    }
    }
    T &operator[](size_t pos) {
    assert(pos < _size);
    return _pData[pos];
    }
    private:
    T * _pData;
    size_t _size;
    size_t _capacity;
    };

    ���������������������������������������������������������������������������������������������������������������������

    void Test() {
    Vector
    sq(10);
    Vector
    sq2(10);
    }

    ���������������������

  • ������������������������������������������������������������������
  • ���������������������������������������������������
  • ���������������������������������������������������������
  • ���������������������������������������������������������������������������
  • ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    上一篇:在函数中使用static变量到底有什么用?
    下一篇:剑指offer--C++--2-7-8-9-10--替换空格--斐波那契数列--跳台阶--变态跳台阶--矩阵覆盖

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2025年04月06日 05时30分56秒