用Xcode来写C++程序[5] 函数的重载与模板
此节包括函数重载,隐式函数重载,函数模板,带参数函数模板
函数的重载
#include <iostream>
using namespace std;
int operate (int a, int b) {
return (a * b);
}
double operate (double a, double b) {
return (a / b);
}
int main ()
{
int x = 5;
int y = 2;
double n = 5.0 ;
double m = 2.0;
cout << operate (x,y) << '\n';
cout << operate (n,m) << '\n';
return 0;
}
打印结果
10
2.5
Program ended with exit code: 0
函数模板
#include <iostream>
using namespace std;
// 模板
template <class T>
T sum (T a, T b) {
T result;
result = a + b;
return result;
}
int main () {
// 值初始化
int i = 5;
int j = 6;
int k = 0;
double f = 2.0, g = 0.5, h;
// 使用模板函数
k = sum<int>(i, j);
h = sum<double>(f, g);
// 打印输出
cout << k << '\n';
cout << h << '\n';
return 0;
}
打印结果
30
2.5
Program ended with exit code: 0
模板自动匹配
#include <iostream>
using namespace std;
template <class T, class U>
bool are_equal (T a, U b) {
return (a == b);
}
int main () {
// 自动模板识别
if (are_equal(10,10.0))
cout << "x and y are equal\n";
else
cout << "x and y are not equal\n";
return 0;
}
打印结果
x and y are equal
Program ended with exit code: 0
带参数的模板
#include <iostream>
using namespace std;
template <class T, int N>
T fixed_multiply (T val) {
return val * N;
}
int main() {
std::cout << fixed_multiply<int, 2>(10) << '\n';
std::cout << fixed_multiply<int, 3>(10) << '\n';
}
打印结果
20
30
Program ended with exit code: 0
时间: 2024-11-02 13:22:49