模板案例分析

简介: *模板可以实现数组的大小排序比较模板案例分析
    #include<iostream>
     #include<string>
    using namespace std;

/ 模板可以实现数组的大小排序比较
*/

//交换模板

template<typename T>

void myswap(T& a,T& b)
{
T temp = a;
a = b;
b = temp;
}

//排序模板

template<typename T>

void mysort(T arr[],int len)
{
for (int i = 0; i < len; i++)
{
int max = i;
for (int j = i + 1; j < len; j++)
{
if (arr[max] < arr[j])
max = j;
}
if (max != i)
{
myswap(arr[max], arr[i]);
}
}
}
//打印模板

 template<typename T>

void print(T arr[],int len)
{
for (int i = 0; i < len; i++)
{
cout << arr[i];
}
}
//调用
//int 类型调用模板
void test()
{
int arr[] = { 1,7,9,4,5,6 };
int num = sizeof(arr) / sizeof(int);
mysort(arr,num);
print(arr, num);
}
//调用
//char 类型调用模板
void test02()
{
char arr[] = "fdafdc";
int num = sizeof(arr);
mysort(arr, num);
print(arr, num);
}

//自定义类型模板
//类模板定义

 template<class A,class B>

class person
{
public:
person(A name,B age)
{
this->myname = name;
this->myage = age;
}
void show()
{
cout << "myname=" << this->myname << endl;
cout << "myage=" << this->myage << endl;
}
public:
A myname;
B myage;
};

//指定传入类型

 void print(person  <string,int>&p)

{
p.show();
}
void test3()
{

  person<string, int>p("小洁洁",40);
print(p);

}
//
//void func()
//{
//

   person<string ,int>p1("小洁洁",10);

// person p1("小洁洁",10);//错误。不能自动类型推导
//制定函数模板中的默认参数

  template<class A,class B=int>

//

  person<string>p1("dh",11);

//
// p1.show();
//}

class base1
{
public:
void show1()
{
cout << "base成员函数调用" << endl;
}
};
class base2
{
public:
void show2()
{
cout << "base1的成员数调用" << endl;
}
};

 template<class S>

class mybase
{
public:
S s;
void func1()
{
s.show1();
}
void func2()
{
s.show2();
}
};
void teest()
{

  //mybase<base1> m;
//m.func1();

}
int main()
{
//terr();
//test02();
//teest();
test3();
system("pause");
return 0;
}

目录
相关文章
|
4月前
|
编译器 C++
C++-模板基础
C++-模板基础
34 0
|
11月前
|
计算机视觉
挣值管理案例
挣值管理案例。
59 1
|
11月前
|
小程序 JavaScript 前端开发
小程序入门及案例展示
小程序入门及案例展示
182 0
|
10月前
|
算法 编译器 C++
C++模版基础
C++模版基础
40 0
|
3月前
|
JavaScript API
【vue实战项目】通用管理系统:信息列表,信息录入
【vue实战项目】通用管理系统:信息列表,信息录入
41 3
|
10月前
|
NoSQL 分布式数据库 Redis
103 云笔记案例(代码流程分析)
103 云笔记案例(代码流程分析)
49 0
|
编译器 虚拟化 C++
c++学习之模板
c++学习之模板
70 0
|
前端开发 JavaScript 数据可视化
漏刻有时数据可视化大屏核心框架模版更换前端模版操作(1)HTML文件分离及访问显示
漏刻有时数据可视化大屏核心框架模版更换前端模版操作(1)HTML文件分离及访问显示
78 0
|
前端开发 数据可视化 JavaScript
漏刻有时数据可视化大屏核心框架模版更换前端模版操作(2)API开发及数据调用
漏刻有时数据可视化大屏核心框架模版更换前端模版操作(2)API开发及数据调用
87 0
|
资源调度
如何基于tristana项目模板,打造一个基本列表展示 #100
如何基于tristana项目模板,打造一个基本列表展示 #100
75 0