模板(函数模板)
补:const 修饰只读
静态函数
1、静态成员属于类不属于对象,生命周期进程级
2、静态成员依然有类的作用域和访问控制属性
3、相当于全局变量(函数),只是多了类作用域和访问控制属性限制
4、静态成员函数没有 this指针
5、定义它初始化都要在外部,不能在构造函数
6、它为该类所有共享对象,可通过对象直接通过类
7、静态成员函数只能访问静态成员(静态函数,静态类)
虚函数: 一个函数实现多个函数的作用域
模板:
用宏实现多个函数,使用一个函数实现
#define max(a,b)((a)>(b)?(a):(b))
注:max中(a , b)可是任意类型的类
函数模板语法
template<typename 类型参数1,typename 类型参数2>
返回值类型 函数名(形参列表)
{
//模板函数体
}
eg:
#include<iostream>
uisng namespace std;
template <typename T1,typename T2>
(T2) T1 foo( T1 a,T2 b )
{
return b;(return a;)
}
int main()
{
cout<<foo<double,int >(10.111,5)<<endl;
}
返回打印 5 返回打印10.111
函数模板的作用
函数名<参数类型 1,参数类型 2>(形参表)
eg:
template <typename T>
(T2) T1 foo( T1 a,T2 b )
T max( T a,T b)
{
return a > b ? a : b ;
}
int main()
{
cout<<max<int>(12,34)<<endl;
cout<<max<double>(12.12,3.4)<<endl;
cout<<max<string>("abc","xyz")<<endl;
}
char S1[ ]=" abc ";
char S2[ ]=" xyz ";
cout<<max<stirng>(S1,S2)<<endl;
getchar();//cin.get();
template <typename T,typename T1,typename T2,typename T3,typename T4.........>
T1 foo(int a, T b)
cout<<"foo的值”<<foo<int,double> (1,2,3,)<<endl;
添加头文件 #include<string>
string st = "ni, hao ";
st.push_back(' a ');//在尾部插入字符a 打印 ni hao a
string 的作用是:字符串进行比较: string st="hello world";

浙公网安备 33010602011771号