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

在线电影网站建设做视频网站需要流媒体吗

在线电影网站建设,做视频网站需要流媒体吗,网站开发是什么工作,wordpress创建动态页面函数模板(一) ● 使用 template 关键字引入模板: template void fun(T) {…} – 函数模板的声明与定义 – typename 关键字可以替换为 class ,含义相同 – 函数模板中包含了两对参数:函数形参 / 实参;模板形…

函数模板(一)
● 使用 template 关键字引入模板: template void fun(T) {…}
– 函数模板的声明与定义
– typename 关键字可以替换为 class ,含义相同
– 函数模板中包含了两对参数:函数形参 / 实参;模板形参 / 实参
● 函数模板的显式实例化: fun(3)

//函数模板的声明
template<typename T>
void fun(T);
//函数模板的再次声明
template<typename T>
void fun(T);
//函数模板的定义
template<typename T> //T为模板形参
//也可以写成template<class T>,但不能写成template<struct T>
void fun(T input) //input是函数形参
{std::cout << "template<typename T> void fun(T input): " << input << std::endl;
}
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);fun<int>(3);fun<double>(3);return a.exec();
}

在这里插入图片描述

函数模板被实例化成

#ifdef INSIGHTS_USE_TEMPLATE
template<>
void fun<int>(int input)
{std::operator<<(std::cout, "template<typename T> void fun(T input): ").operator<<(input).operator<<(std::endl);
}
#endif#ifdef INSIGHTS_USE_TEMPLATE
template<>
void fun<double>(double input)
{std::operator<<(std::cout, "template<typename T> void fun(T input): ").operator<<(input).operator<<(std::endl);
}
#endif

– 实例化会使得编译器产生相应的函数(函数模板并非函数,不能调用)
– 编译期的两阶段处理
● 模板语法检查
● 模板实例化
– 模板必须在实例化时可见 :翻译单元的一处定义原则

//header.h
#include<iostream>
template<typename T>//在source.cpp翻译单元出现了一次,在main.cpp翻译单元也出现了一次,虽然链接时产生重定义,由于模板的两阶段处理的关系,标准放松了这个限制,翻译单元级别的一处定义原则
void fun(T input)
{std::cout << "template<typename T> void fun(T input): " << input << std::endl;
}
void normalFun() //普通函数发生链接错误,在source.cpp翻译单元出现了一次,在main.cpp翻译单元也出现了一次,链接时产生重定义,程序级别的一处定义原则
{//do something
}
inline void normalFun2() //inline关键字使得程序级别的一处定义原则退化成翻译单元级别的一处定义原则
{//do something
}
//source.cpp
#include<header.h>
void g()
{fun<float>(3);
}
//main.cpp
#include<header.h>
int main(int argc, char *argv[])
{fun<int>(3);fun<double>(3);return 0;
}

– 注意与内联函数的异同

相同点:都满足翻译单元级别的一处定义原则。
异同点:函数模板的翻译单元级别的一处定义原则的原因是为了保证编译期的两阶段处理;内联函数的翻译单元级别的一处定义原则的原因是在编译期,在被调用处可以拿来展开

template<typename T>
inline void fun(T input) //和template<typename T> void fun(T input)是两个概念,inline关键字使得在调用处展开
{std::cout << "template<typename T> void fun(T input): " << input << std::endl;
}

● 函数模板的重载

template<typename T>
void fun(T input)
{std::cout << "template<typename T> void fun(T input): " << input << std::endl;
}template<typename T>
void fun(T* input) //重载1
{std::cout << "template<typename T> void fun(T* input): " << *input << std::endl;
}template<typename T, typename T2>
void fun(T input, T2 input2) //重载2
{std::cout << "template<typename T, typename T2> void fun(T input, T2 input2): " << input << input2 << std::endl;
}int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);int x = 3;fun<int>(x); //调用template<typename T> void fun(T input)fun<int>(&x); //调用template<typename T> void fun(T* input)return a.exec();
}

在这里插入图片描述
参考
深蓝学院:C++基础与深度解析

http://www.yayakq.cn/news/355891/

相关文章:

  • 基础建设的网站有哪些内容我要安装百度
  • 做家装网站源码住房和城乡建设查询平台官网
  • 长春建站最新消息自己怎么制作图片
  • 虞城做网站天眼查免费查询
  • 网站系统繁忙网站视频怎么做的好处
  • 个性个人网站找人做网站被骗
  • 网站做外链什么意思微信网站与响应式网站有哪些
  • 做电影网站哪个源码好微网站第三方平台
  • 长春网站建设哪家好西安中高风险地区查询
  • 东莞网站制作及推广价格产品开发流程梳理
  • 网站的建设和维护的钱建网站的公司哪里好
  • 网站开发和软件开发含义国内较好的网站设计公司
  • 青岛开发网站推荐晚上用的网站
  • 通州区网站建设怎么做一元抽奖网站
  • 网站设计公司长沙广西seo经理
  • 深圳做个商城网站设计一个公司网站备案
  • 响应式网站图解html5可以做手机网站吗
  • 百度自建站互助盘网站开发
  • php网站模版东莞网站关键词优化效果
  • 汶上云速网站建设个人做金融网站能赚钱吗
  • 南阳建网站企业有哪些网站域名批量查询注册
  • 汝州市建设局网站跨境电商全托管有哪些平台
  • 房地产网站系统iis发布php网站
  • 网站seo关键词布局wordpress站点浏览
  • 江苏高效网站制作机构泰兴住房和城乡建设厅网站
  • 2023年封城通知wordpress采集后seo
  • 义乌商城网站开发在国外视频网站做中国美食
  • 小红书 wordpress重庆seo培训
  • 电商网站前后台模板闷声赚钱的10个副业
  • 西安千度网站建设有没有做那个的视频网站