C++ 从入门到精通C++ 从入门到精通
首页
基础教程
进阶教程
实战项目
编程指南
首页
基础教程
进阶教程
实战项目
编程指南
  • 💪 进阶基础

    • 📚 C++ 进阶教程
    • 第8章 - 指针基础
    • 第9章 - 引用和动态内存
    • 第10章 - 结构体和枚举
    • 第11章 - 文件操作
    • 第12章 - 预处理器和命名空间
  • 🎯 面向对象编程

    • 第13章 - 类和对象基础
    • 第14章 - 构造函数和析构函数
    • 第15章 - 封装、继承、多态
    • 第16章 - 运算符重载
    • 第17章 - 模板基础
    • 第18章 - 异常处理
  • 📦 STL 标准模板库

    • 第19章 - Vector 和 String
    • 第20章 - 容器类
    • 第21章 - Map 和 Set
    • 第22章 - 算法和迭代器

第17章 - 模板基础

嗨,朋友!我是长安。

模板是C++的泛型编程工具,可以编写适用于多种数据类型的代码。

📝 函数模板

// 交换函数模板
template <typename T>
void swap(T& a, T& b) {
    T temp = a;
    a = b;
    b = temp;
}

int main() {
    int x = 10, y = 20;
    swap(x, y);  // T = int
    
    double a = 1.5, b = 2.5;
    swap(a, b);  // T = double
    
    string s1 = "Hello", s2 = "World";
    swap(s1, s2);  // T = string
}

🏗️ 类模板

template <typename T>
class Stack {
private:
    T data[100];
    int top;
    
public:
    Stack() : top(-1) {}
    
    void push(T value) {
        if (top < 99) {
            data[++top] = value;
        }
    }
    
    T pop() {
        if (top >= 0) {
            return data[top--];
        }
        return T();
    }
    
    bool isEmpty() {
        return top == -1;
    }
};

int main() {
    Stack<int> intStack;
    intStack.push(10);
    intStack.push(20);
    
    Stack<string> strStack;
    strStack.push("Hello");
    strStack.push("World");
}

➡️ 第18章 - 异常处理

最近更新: 2025/12/26 17:25
Contributors: 王长安
Prev
第16章 - 运算符重载
Next
第18章 - 异常处理