当前位置: 首页 > news >正文

工信部个人网站备案关键词seo优化排名

工信部个人网站备案,关键词seo优化排名,网站点击滚动图片代码,天津河东做网站哪家好文章目录 一、普通函数 与 函数模板 的调用规则 - 类型自动转换1、函数模板和重载函数2、类型自动转换3、代码示例 - 类型自动转换 二、普通函数 与 函数模板 的调用规则 - 类型自动转换 显式指定泛型类型1、类型自动转换 显式指定泛型类型2、代码示例 - 类型自动转换 显式指…

文章目录

  • 一、普通函数 与 函数模板 的调用规则 - 类型自动转换
    • 1、函数模板和重载函数
    • 2、类型自动转换
    • 3、代码示例 - 类型自动转换
  • 二、普通函数 与 函数模板 的调用规则 - 类型自动转换 + 显式指定泛型类型
    • 1、类型自动转换 + 显式指定泛型类型
    • 2、代码示例 - 类型自动转换 + 显式指定泛型类型






一、普通函数 与 函数模板 的调用规则 - 类型自动转换




1、函数模板和重载函数


定义了 函数模板 , 该 函数模板 可以接收 任意类型的参数 T , 但是要求这两个参数类型 T 和 返回值类型 T 必须是相同的 ;

// 使用 template 关键字 声明函数模板 
// 告诉 C++ 编译器 开始使用 泛型编程 
// 定义的 T 是泛型类型 
// 声明了多个泛型, 可以只使用其中的部分类型
// 使用函数模板时 , 显式类型调用 必须 显式指定所有 泛型类型 的实际类型
template <typename T>
T add(T a, T b) {cout << "调用函数模板 T add(T a, T b)" << endl;return a + b;
}

此外还定义了 函数模板 的 重载函数 , 该重载函数 接收两个 int 类型的参数 , 同时返回 int 类型的返回值 ;

// 函数模板的 重载函数
// 重载是发生在 同一个作用域中
// 重写是发生在 父类 与 子类 之间
// C++ 编译器优先 调用 符合要求的 普通函数
// 如果普通函数不符合要求 , 则考虑调用 函数模板
int add(int a, int b) {cout << "调用普通函数 int add(int a, int b)" << endl;return a + b;
}

2、类型自动转换


当 函数模板 有 重载的 普通函数时 , 普通函数 调用 优先级 高于 函数模板 ;

函数模板 会进行 严格类型匹配 , 不会进行 类型转换 ;

普通函数 如果 遇到 参数不匹配的情况 , 会将 函数参数 进行类型自动转换 ;


函数模板 与 普通函数 在 类型自动转换 方面调用规则如下 :

  • 首先 , 如果 符合 普通函数类型参数要求 , 优先调用普通函数 ;
  • 然后 , 如果 没有 符合要求的 普通函数 , 则查看 模板函数 能否匹配 ;
  • 最后 , 如果 模板函数 仍不能匹配 , 则查看 普通函数 类型转换能否匹配 ;

3、代码示例 - 类型自动转换


代码示例 :

#include "iostream"
using namespace std;// 使用 template 关键字 声明函数模板 
// 告诉 C++ 编译器 开始使用 泛型编程 
// 定义的 T 是泛型类型 
// 声明了多个泛型, 可以只使用其中的部分类型
// 使用函数模板时 , 显式类型调用 必须 显式指定所有 泛型类型 的实际类型
template <typename T>
T add(T a, T b) {cout << "调用函数模板 T add(T a, T b)" << endl;return a + b;
}// 函数模板的 重载函数
// 重载是发生在 同一个作用域中
// 重写是发生在 父类 与 子类 之间
// C++ 编译器优先 调用 符合要求的 普通函数
// 如果普通函数不符合要求 , 则考虑调用 函数模板
int add(int a, int b) {cout << "调用普通函数 int add(int a, int b)" << endl;return a + b;
}// 普通函数  调用 优先级 高于 函数模板
// 函数模板 会进行 严格类型匹配 , 不会进行 类型转换 ; 
// 
// 如果 符合 普通函数类型参数要求 , 优先调用普通函数 ; 
// 如果 没有 符合要求的 普通函数 , 则查看 模板函数 能否匹配 ; 
// 如果 模板函数 仍不能匹配 , 则查看 普通函数 类型转换能否匹配 ; int main() {int a = 10, b = 20; char x = 'A', y = 'B';// 调用普通函数// 如果符合普通函数要求 优先调用普通函数int c = add(a, b);cout << "c = " << c << endl;// 调用 函数模板// 普通函数类型不匹配, 查看 模板函数 能否匹配// 模板函数可以匹配int d = add(x, y);cout << "d = " << d << endl;// 调用 普通函数// 普通函数类型不匹配, 查看 模板函数 能否匹配// 模板函数不可以匹配 , 继续查看 普通函数 类型自动转换// x 可以转为 int 类型 , 这样就可以符合普通函数参数要求int e = add(a, x);cout << "e = " << e << endl;// 控制台暂停 , 按任意键继续向后执行system("pause");return 0;
}

执行结果 :

调用普通函数 int add(int a, int b)
c = 30
调用函数模板 T add(T a, T b)
d = -125
调用普通函数 int add(int a, int b)
e = 75
请按任意键继续. . .

在这里插入图片描述





二、普通函数 与 函数模板 的调用规则 - 类型自动转换 + 显式指定泛型类型




1、类型自动转换 + 显式指定泛型类型


在上面示例的前提下 , 如果 传入参数 类型分别是 int 和 char , 并且强行指定 泛型类型 , 这样必须使用函数模板 , 此时 函数模板 也可以进行 类型自动转换 ;

	int a = 10, b = 20; char x = 'A', y = 'B';// 调用 函数模板// 函数模板 显式类型调用 , 强行使用 函数模板int k = add<int>(a, x);cout << "k = " << k << endl;

2、代码示例 - 类型自动转换 + 显式指定泛型类型


代码示例 :

#include "iostream"
using namespace std;// 使用 template 关键字 声明函数模板 
// 告诉 C++ 编译器 开始使用 泛型编程 
// 定义的 T 是泛型类型 
// 声明了多个泛型, 可以只使用其中的部分类型
// 使用函数模板时 , 显式类型调用 必须 显式指定所有 泛型类型 的实际类型
template <typename T>
T add(T a, T b) {cout << "调用函数模板 T add(T a, T b)" << endl;return a + b;
}// 函数模板的 重载函数
// 重载是发生在 同一个作用域中
// 重写是发生在 父类 与 子类 之间
// C++ 编译器优先 调用 符合要求的 普通函数
// 如果普通函数不符合要求 , 则考虑调用 函数模板
int add(int a, int b) {cout << "调用普通函数 int add(int a, int b)" << endl;return a + b;
}// 普通函数  调用 优先级 高于 函数模板
// 函数模板 会进行 严格类型匹配 , 不会进行 类型转换 ; 
// 
// 如果 符合 普通函数类型参数要求 , 优先调用普通函数 ; 
// 如果 没有 符合要求的 普通函数 , 则查看 模板函数 能否匹配 ; 
// 如果 模板函数 仍不能匹配 , 则查看 普通函数 类型转换能否匹配 ; int main() {int a = 10, b = 20; char x = 'A', y = 'B';// 调用普通函数// 如果符合普通函数要求 优先调用普通函数int c = add(a, b);cout << "c = " << c << endl;// 调用 函数模板// 普通函数类型不匹配, 查看 模板函数 能否匹配// 模板函数可以匹配int d = add(x, y);cout << "d = " << d << endl;// 调用 普通函数// 普通函数类型不匹配, 查看 模板函数 能否匹配// 模板函数不可以匹配 , 继续查看 普通函数 类型自动转换// x 可以转为 int 类型 , 这样就可以符合普通函数参数要求int e = add(a, x);cout << "e = " << e << endl;// 调用 函数模板// 函数模板 显式类型调用 , 强行使用 函数模板int k = add<int>(a, x);cout << "k = " << k << endl;// 控制台暂停 , 按任意键继续向后执行system("pause");return 0;
}

执行结果 :

调用普通函数 int add(int a, int b)
c = 30
调用函数模板 T add(T a, T b)
d = -125
调用普通函数 int add(int a, int b)
e = 75
调用函数模板 T add(T a, T b)
k = 75
请按任意键继续. . .

在这里插入图片描述

http://www.hkea.cn/news/971293/

相关文章:

  • 做h的游戏 迅雷下载网站百度推广管家
  • 营销型网站建设的目的外贸网站平台都有哪些 免费的
  • 广东做网站公司广州从化发布
  • 能发外链的网站国际新闻今天最新消息
  • 做软件的网站关键词优化快速排名
  • 网站建设与管理简介网站链接交易
  • 英文网站建设教程网盘资源搜索神器
  • 做旅游网站的引言最新网络推广平台
  • 服务器上给网站做301跳转企业网站注册
  • 网站建设好做吗乐事薯片软文推广
  • wordpress 年月归档如何优化培训体系
  • 威海高区建设局网站长春做网络优化的公司
  • 安平做网站百度一下首页百度一下知道
  • 苏州建设网站市政中标项目如何做推广引流赚钱
  • 17网站一起做网店怎么下单来宾网站seo
  • 建设商务网站的目的天津seo网站排名优化公司
  • 阿里巴巴网站导航栏怎么做口碑营销策划方案
  • 线上做交互的网站百度app下载
  • 做暖暖欧美网站挖掘爱站网
  • 网站 风格百度推广公司
  • 林州网站建设公司站长工具关键词排名怎么查
  • 想给公司做个网站微信seo是什么意思
  • 网站做管制户外刀具营销推广方案模板
  • 淘宝客网站免费做seo网站关键词优化机构
  • 企业做网站建设的好处seo网站关键词优化
  • 一般网站用什么做的最新新闻国内大事件
  • 做线上网站需要钱吗互联网营销推广
  • 找个美工做淘宝网站需要多少钱南昌seo方案
  • 网站用户登录流程图外贸高端网站设计公司
  • 做搜狗手机网站优化软代写