C++模版与运算符重载
时间: 2024-06-14 07:04:50 浏览: 104
C++模板和运算符重载是C++中两个重要的特性。下面是关于C++模板和运算符重载的介绍和示例:
1. C++模板:
C++模板是一种通用的编程工具,它允许我们编写可以适用于多种数据类型的代码。通过使用模板,我们可以编写一次代码,然后根据需要在不同的数据类型上进行实例化。模板可以用于函数模板和类模板。
函数模板示例:
```cpp
template <typename T>
T add(T a, T b) {
return a + b;
}
int main() {
int result1 = add(5, 3); // 实例化为int类型
double result2 = add(2.5, 1.5); // 实例化为double类型
return 0;
}
```
类模板示例:
```cpp
template <typename T>
class Stack {
private:
T data[100];
int top;
public:
void push(T value) {
data[top++] = value;
}
T pop() {
return data[--top];
}
};
int main() {
Stack<int> intStack; // 实例化为int类型的栈
intStack.push(5);
intStack.push(10);
int value = intStack.pop();
Stack<double> doubleStack; // 实例化为double类型的栈
doubleStack.push(2.5);
doubleStack.push(1.5);
double value = doubleStack.pop();
return 0;
}
```
2. 运算符重载:
C++允许我们通过运算符重载来定义自定义类型的运算符行为。通过重载运算符,我们可以为自定义类型定义适当的操作,使其能够像内置类型一样进行运算。
运算符重载示例:
```cpp
class Complex {
private:
double real;
double imag;
public:
Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {}
Complex operator+(const Complex& other) {
Complex result;
result.real = real + other.real;
result.imag = imag + other.imag;
return result;
}
};
int main() {
Complex c1(2.0, 3.0);
Complex c2(1.5, 2.5);
Complex c3 = c1 + c2; // 使用重载的+运算符进行相加
return 0;
}
```
阅读全文