模板(函数模板)

补: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";

 

posted @ 2018-08-14 18:53  猎人7号  阅读(51)  评论(0)    收藏  举报