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

房地产网站设计方案建设网站开发

房地产网站设计方案,建设网站开发,青岛网上房地产网签查询,怎么来维护已经上传的网站呢目录 1. 泛型编程 2. 函数模板 2.1 函数模板的概念及格式 2.2 函数模板的原理 2.3 模板的实例化 2.4 模板参数的匹配原则 3. 类模板 3.1 类模板格式 3.2 类模板的实例化 1. 泛型编程 什么是泛型编程#xff1f;泛型编程是避免使用某种具体类型而去使用某种通用类型来进行…目录 1. 泛型编程 2. 函数模板 2.1 函数模板的概念及格式 2.2 函数模板的原理 2.3 模板的实例化 2.4 模板参数的匹配原则 3. 类模板 3.1 类模板格式 3.2 类模板的实例化 1. 泛型编程 什么是泛型编程泛型编程是避免使用某种具体类型而去使用某种通用类型来进行程序编写的方式依次来复用某段代码而避免大规模功能相似重复冗余的代码。下面的代码如果想用泛型编程该如何实现。 int add(int a,int b) {return a b; } double add(double a, int b) {return a b; } double add(int a, double b) {return a b; } 马云有次说了这么一句话“世界是懒人创造的懒不是傻懒如果你想少干就要想出懒的方法。 要懒出风格懒出境界。”C必然也是有风格有境界的所以C中设计了模板实现了泛型编程。 2. 函数模板 2.1 函数模板的概念及格式 模板就是一种模具通过给这个模具中放不同的材料类型来获得不同材料的产品以此来提高我们的工作效率。而函数模板就是某个函数的模具与类型无关在使用的时候参数化在我们给出特定类型就会生成特定类型的版本。 函数模板的格式 templatetypename T1, typename T2 ...typename Tn 返回值类型 函数名(形参列表) {     //函数体 } 根据这个函数的模板我们就可以实现上述add函数的模板 templatetypename L, typename R,typename RET RET add(L l, R r) {return l r; } 注typename是用来定义模板参数的关键字也可以用class代替。 2.2 函数模板的原理 函数模板本身不是函数而是一个模具当我们传入实际类型的时候编译器会根据我们传入的实参类型来推演生成对应类型的函数进行调用。 2.3 模板的实例化 当我们将类型传入模板来生产函数的时候称之为模板的实例化模板的实例化分为隐式实例化和显式实例化。 1. 隐式实例化隐式实例化就是我们不去指定类型让编译根据我们传入的实参判断其类型传入模板参数列表进行实例化。如下 templatetypename L, typename R int add(L l, R r) {return l r; } int main() {int a 0, b 1;cout add(a, b) endl; //根据我传入的a和b自动判断类型进行模板实例化。 } 细心的同学发现这里我将原来的代码中 typename RET 删掉了原因就是模板不会对函数的返回值类型进行自动判断而需要我们手动指定也就是显式实例化。 2. 显式实例化显式实例化就是我们手动向模板传递类型然后由编译器进行实例化。显式实例化的格式为 函数名类型1类型2...实参列表 如  templatetypename L, typename R, typename RET RET add(L l, R r) {return l r; } int main() {int a 0, b 1;cout addint,int,int(a, b) endl; } 上述代码我们传进去的 a和b的类型与模板参数类型是匹配的如果不匹配的话编译器会进行隐式类型转化如果转化失败就报错。如下         类型转换成功 templatetypename L, typename R, typename RET RET add(L l, R r) {return l r; } int main() {double a 0.1;int b 1;cout addint,int,int(a, b) endl; //adouble类型隐式转换成int类型 } 输出 类型转化失败  templatetypename L, typename R, typename RET RET add(L l, R r) {return l r; }class Date {// }; int main() {int a 0, b 1;cout addint,Date,int(a, b) endl; //a类型转化失败 } 输出 E0304    没有与参数列表匹配的 函数模板 add 实例 2.4 模板参数的匹配原则 一个函数的模板函数可以与非模板函数同时存在并且在没有显式实例化且类型匹配的情况下会优先匹配非模板函数如果是显式实例化才会调用模板如下。 templateclass T void swap(T a, T b) {std::swap(a, b);std::cout 我是模板 ;std::cout a b std::endl;} void swap(int a, int b) {std::swap(a, b);std::cout 我是非模板 ;std::cout a b std::endl;} int main() {int a 1, b 2;std::cout a b std::endl;swap(a, b); //类型匹配优先调用非模板函数swapint(a, b); //调用模板实例化 } 输出 当我们没有去写模板的时候函数发生类型不匹配可能会进行隐式类型转换但是有了模板之后就不会发生隐式类型转化而是使用模板实例化出来一个更为合适的函数。如下         没有模板时会发生隐式实例化 void test(int a, int b) {std::cout 我不是模板 std::endl; }int main() {test(2, 2.0);//2.0发生隐式类型转化成int } 输出 存在模板不会发生隐式类型转化而是使用模板实例化出来一个更为合适的函数 templateclass T1,class T2 void test(T1 a, T2 b) {std::cout 我是模板 std::endl; } void test(int a, int b) {std::cout 我不是模板 std::endl; } int main() {test(2, 2.0);//不发生隐式类型转化而是隐式实例化模板 } 输出 3. 类模板 3.1 类模板格式 和函数模板一样类模板是类的一个模具类模板格式如下 templateclass T1,class T2,class T3,...class Tn class 类模板名 {     //类体 }; 我们普通类是可以声明和定义分离的如果类模板要实现声明和定义分离那么在定义的时候也要加上模板声明。如 templateclass T1, class T2 class A {~A(); //声明 };templateclass T1,class T2 AT1, T2::~A() //定义 {//... } 3.2 类模板的实例化 类模板的实例化和函数模板相同需要在类名后加上尖括号并且指定类型。注模板名不是类实例化后才是一个类。 templateclass T class Date {//.. }; int main() {Dateint; }
http://www.zqtcl.cn/news/780047/

相关文章:

  • 高端网站设计哪个好五莲网站建设维护推广
  • 外贸网站 测速国内创意网页设计
  • 网站商城前台模板免费下载自己做网站统计
  • 十大免费货源网站免费版本厦门建网站多少钱
  • 网站建设投标书范本深圳网页设计培训多少钱
  • 动态ip可以做网站北京万户网络
  • 网址大全免费网站中国建设银行驻莫斯科网站
  • 网站建设 教材 推荐网站导入
  • 网站备案扫描智能软件开发就业前景
  • 快速网站建设费用口碑营销图片
  • wordpress地址和站点地址错天津seo诊断
  • 张云网站建设做谷歌推广比较好的公司
  • 电子商务网站建设与管理的论文题目智能自助建站系统源码
  • 个人网站建设价格网站做视频转流量
  • 点网站出图片怎么做深圳市中心在哪
  • 企业网站建设58同城网站优化排名软件哪些最好
  • 最专业企业营销型网站建设企业宣传海报设计制作
  • 石家庄建站公司软件开发岗位介绍
  • 网站开发知识视频教程公司网站总感觉少点什么找什么人做
  • 做网站ps建立多大的画布网站排名监控工具
  • 烟台网站开发网站建设横幅标语
  • 微信公众号素材网站在线资源链接
  • 网站开发地图板块浮动国际重大新闻事件10条
  • 成品网站app开发wordpress宽度调整
  • 小型网站建设需要多少钱网站发布内容是否过滤
  • 网站如何推广运营漳平网站编辑价格
  • 海洋优质的网站建设企业微信下载官方网站
  • 十大免费ae模板网站wordpress 远程设置
  • 青岛网站的优化云南抖音推广
  • 做中英文版的网站需要注意什么如何偷别人dedecms网站的模板