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

寻找网站设计与制作景点网站建设方案

寻找网站设计与制作,景点网站建设方案,北京专业做网站公司,舟山网大海网模板的特化 1.概念2.函数模板特化3.类模板的特化3.1 全特化3.2 偏特化3.2.1 部分特化3.2.2 参数更进一步的限制 4.总结 1.概念 在原模板类的基础上#xff0c;针对特殊类型所进行特殊化的实现方式 2.函数模板特化 步骤 1.必须要先有一个基础的函数模板 2.关键字 template后面接… 模板的特化 1.概念2.函数模板特化3.类模板的特化3.1 全特化3.2 偏特化3.2.1 部分特化3.2.2 参数更进一步的限制 4.总结 1.概念 在原模板类的基础上针对特殊类型所进行特殊化的实现方式 2.函数模板特化 步骤 1.必须要先有一个基础的函数模板 2.关键字 template后面接一对空白的尖括号 3.函数名后跟一对中指定需要特化的类型 4.函数形参表必须要和模板函数的基础参数类型完全相同如果不同 编译器可能会报一些奇怪的错误 #include iostream using namespace std; //先创建一个日期类 class Date { public:Date(int year, int month, int day):_year(year), _month(month), _day(day){cout Date(int year, int month, int day) endl;}bool operator(const Date d){if (_year d._year)return true;else if (_year d._year){if (_month d._month){return true;}else if (_month d._month){return _day d._day;}}return false;}bool operator(const Date d){return _year d._year _month d._month _day d._day;} private:int _year;int _month;int _day; }; // 函数模板 -- 参数匹配 templateclass T bool Less(T left, T right) {return left right; } int main() {cout Less(1, 2) endl;Date d1(2022, 7, 7);Date d2(2022, 7, 8);cout Less(d1, d2) endl;//可以比较结果正确Date* p1 d1;Date* p2 d2;cout Less(p1, p2) endl; //可以比较就结果错误return 0; }上述示例中p1指向的d1显然小于p2指向的d2对象但是Less内部并没有比较p1,p2指向对象的内容而比较的是p1,p2指针的地址这就无法达到预期的答案。 此时需要对函数模板进行特化 // 对Less函数模板进行特化 template bool LessDate*(Date * left, Date * right) {return *left *right; } 注意一般情况下如果函数模板遇到不能处理或者处理有误的类型为了实现简单通常都是将改函数直接给出 bool Less(Date* left, Date* right) {return *left *right; }该种实现简单明了代码的可读性高容易书写。 3.类模板的特化 3.1 全特化 全特化是将模板参数列表中所有的参数都确定化 templateclass T1, class T2 class Data { public :Data() { cout DataT1, T2 endl; } private:T1 _d1;T2 _d2; }; //全特化 template class Dataint, char { public :Data() { cout Dataint, char endl; } private:int _d1;char _d2; };3.2 偏特化 3.2.1 部分特化 将模板参数类表中的一部分参数特化 templateclass T1, class T2 class Data { public :Data() { cout DataT1, T2 endl; } private:T1 _d1;T2 _d2; }; //偏特化 // 将第二个参数特化为int template class T1 class DataT1, int { public :Data() { cout DataT1, int endl; } private:T1 _d1;int _d2; };3.2.2 参数更进一步的限制 偏特化不仅仅是指特化部分参数而是针对模板参数更进一步的条件限制所设计出来的一个特化版本 templateclass T1, class T2 class Data { public :Data() { cout DataT1, T2 endl; } private:T1 _d1;T2 _d2; };//两个参数偏特化为指针类型 template typename T1, typename T2 class Data T1*, T2* { public :Data() { cout DataT1*, T2* endl; } private:T1 _d1;T2 _d2; }; //两个参数偏特化为引用类型 template typename T1, typename T2 class Data T1, T2 { public :Data(const T1 d1, const T2 d2): _d1(d1), _d2(d2){cout DataT1, T2 endl;} private:const T1 _d1;const T2 _d2; };4.总结 优点 模板复用了代码节省资源增强了代码的灵活性 缺点 模板会导致代码膨胀问题也会导致编译时间变长出现模板编译错误时错误信息非常凌乱不易定位错误
http://www.w-s-a.com/news/2959593/

相关文章:

  • 深圳网站制作公司嘉兴怀柔做网站
  • 国际空间站vs中国空间站拖拽式建站平台
  • 珠宝出售网站模板网站建设费用报价表
  • 一个网站可以做多少关键字制造企业危机公关解决方案
  • 个人网站设计开题报告上海哪个网站专门做宝宝宴的
  • 初创公司 建网站更换网站ico
  • php导航网站wordpress 下一页
  • 企业适合用模板网站企管宝
  • 网站注册时间上海微信小程序网站建设
  • 网站被挂广告怎么办wordpress my visitors 数据备份恢复
  • 网站推广外包社交app网站开发
  • 怎么学习制作网站杭州百度seo优化
  • 聚美优品网站建设分析工地木模板多少钱一张
  • jsp简单的网站开发例子青岛建站价格
  • 手机做网站知乎上海品牌营销咨询公司
  • 河北邯郸做网站的公司网站建设价格就要用兴田德润
  • 图片生成网站wordpress 滑动解锁
  • 郑州php网站建设阿里巴巴国际网站建设
  • 网站建设过程总结报告企业注册地址变更流程
  • 网页微信登录长尾词优化外包
  • 网站建设方案书制作wordpress值得买模板
  • 网络推广的基本方法有哪些惠州网站建设公司推荐乐云seo
  • 中国行业网站在家做兼职的网站
  • 本地镇江网站建设泉州网站制作建设
  • 简单的购物网站开发网络推广网站电话
  • 个人网站模板大全杭州城西做网站的公司
  • 怎么做英文的网站首页贴图库wordpress
  • 网站建设中网站图片如何修改扬中网站设计公司
  • 广州 建设 招聘信息网站linux系统服务器怎么做网站
  • 网站域名空间租用合同企业官网门户网站管理系统