c++函数模板
void foo(const int& x);
void foo(const int& x);
void foo(int const& x);
void foo(int const& x);
几种都可,常数更倾向int const,可以用理论解释
const int* bookmark;
int* const bookmark;//报错
==函数模板==
//hpp
#pragma once
template <typename T>
inline T const& max(T const& a, T const& b)
{
return a < b ? b : a;
}
//cpp
#include<iostream>
#include<vector>
#include<list>
#include<map>
#include<string>
#include "fun.hpp"
int main()
{
std::string b = ::max<std::string >("ddddddddddf", "sdw");//::确保成员名字空间
std::cout << b << std::endl;
return 0;
}
类型强制类型转换
max(static_cast<double>(4),1.2)
显示指定max<int>(1,2);
函数模板不能指定缺省
返回类型也可指定参数,但是很麻烦(调用时显式化);
在函数里显示返回,但是这种也很麻烦(返回时显式化);
编译两次:实例化前,查看语法;实例化期间,查看函数调用是否有效
函数重载max<>()只有模板才能调用;
浙公网安备 33010602011771号