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

腾云网站建设怎么样h5企业网站定制排名

腾云网站建设怎么样,h5企业网站定制排名,做企业门户网站,深圳市住房和建设局官网在线申请简单易懂的比喻代码示例逐步递进,让你学得轻松又扎实! 1️⃣ 模板(Template)是什么? 🌟 先来个简单的例子 假设你写了一个 计算两个数之和 的函数: int add(int a, int b) {return a b; }✅ 可…

简单易懂的比喻+代码示例+逐步递进,让你学得轻松又扎实!


1️⃣ 模板(Template)是什么?

🌟 先来个简单的例子

假设你写了一个 计算两个数之和 的函数:

int add(int a, int b) {return a + b;
}

可以处理整数 int,但如果想计算 小数 double 呢?
你得再写一个函数

double add(double a, double b) {return a + b;
}

⚠️ 问题: 代码重复!不同类型的数据都要单独实现,怎么办?
💡 模板 来解决!


2️⃣ 函数模板

🚀 基本语法

template <typename T>
T add(T a, T b) {return a + b;
}
🔹 代码解析
  • template <typename T>:告诉编译器 T 是一个占位符,代表"某种类型"。
  • T add(T a, T b):参数 ab 和返回值的类型都是 T,编译时会替换成具体类型

🌰 示例:使用模板

#include <iostream>// 定义函数模板
template <typename T>
T add(T a, T b) {return a + b;
}int main() {std::cout << add(3, 5) << std::endl;      // T = intstd::cout << add(3.14, 2.71) << std::endl; // T = double
}

🎯 编译器会自动推导 T 的类型

  • add(3, 5)int add(int a, int b)
  • add(3.14, 2.71)double add(double a, double b)

3️⃣ 类模板

🚀 为什么要用类模板?

问题: 你写了一个 存储整数Box 类:

class Box {
private:int value;
public:Box(int v) : value(v) {}int getValue() { return value; }
};

但如果想存 doublestd::string 呢?
类模板一个类 适用于 所有类型

🌟 语法

template <typename T>
class Box {
private:T value;
public:Box(T v) : value(v) {}T getValue() { return value; }
};

🌰 使用类模板

#include <iostream>// 定义类模板
template <typename T>
class Box {
private:T value;
public:Box(T v) : value(v) {}T getValue() { return value; }
};int main() {Box<int> intBox(10);           // T = intBox<double> doubleBox(3.14);   // T = doubleBox<std::string> strBox("Hi"); // T = std::stringstd::cout << intBox.getValue() << std::endl;std::cout << doubleBox.getValue() << std::endl;std::cout << strBox.getValue() << std::endl;
}

🎯 T 被替换成不同类型,一个模板搞定所有情况!


4️⃣ 非类型模板参数

🚀 什么是非类型模板参数?

模板不仅可以接受类型参数,还可以接受常量参数!

template <typename T, int N>
class Array {
private:T data[N];  // N 是数组大小
public:int size() { return N; }
};

🌰 示例

#include <iostream>// 定义类模板,N 是数组大小
template <typename T, int N>
class Array {
private:T data[N];
public:int size() { return N; }
};int main() {Array<int, 5> arr1;   // T = int, N = 5Array<double, 10> arr2; // T = double, N = 10std::cout << arr1.size() << std::endl; // 输出 5std::cout << arr2.size() << std::endl; // 输出 10
}

🎯 N 是常量,必须在编译时确定,不能传变量


5️⃣ 模板特化

🚀 什么是模板特化?

问题: 如果 Box<std::string> 需要特殊处理,怎么办?
模板特化(Template Specialization) 允许我们针对特定类型提供不同实现

🌰 示例

#include <iostream>// 普通模板
template <typename T>
class Box {
public:void print(T value) {std::cout << "普通值: " << value << std::endl;}
};// 针对 std::string 特化
template <>
class Box<std::string> {
public:void print(std::string value) {std::cout << "字符串: " << value << std::endl;}
};int main() {Box<int> intBox;intBox.print(42);  // 输出:普通值: 42Box<std::string> strBox;strBox.print("Hello");  // 输出:字符串: Hello
}

🎯 特化后的 Box<std::string> 代码与普通模板不同,实现了不同逻辑


6️⃣ 可变参数模板

🚀 为什么需要可变参数模板?

问题: 有时候,函数/类的参数个数不固定,怎么办?
可变参数模板(Variadic Template) 允许任意数量的模板参数

🌰 示例

#include <iostream>// 递归终止条件
void print() { std::cout << std::endl; }// 递归展开参数
template <typename T, typename... Args>
void print(T first, Args... rest) {std::cout << first << " ";print(rest...);  // 递归展开剩余参数
}int main() {print(1, "Hello", 3.14, "C++", 42);
}

🎯 编译器会递归展开参数,直到 print() 没有参数,终止递归。


✨ 总结

特性作用
函数模板适用于 任意类型 的函数
类模板适用于 任意类型 的类
非类型模板参数模板参数不仅限于类型,还可以是整数常量
模板特化针对特定类型 提供不同实现
可变参数模板允许 任意数量的模板参数


文章转载自:

http://lVvjGfTj.yprnp.cn
http://SZzNtWx2.yprnp.cn
http://Pho3FWGf.yprnp.cn
http://gU3YRNcP.yprnp.cn
http://wc6Eubd6.yprnp.cn
http://sEKYZfgB.yprnp.cn
http://jmMN0aqE.yprnp.cn
http://rEK5cchR.yprnp.cn
http://yLvIl9AS.yprnp.cn
http://5lfWCjOG.yprnp.cn
http://c9HJXUJs.yprnp.cn
http://OEZfwIDO.yprnp.cn
http://G98Zbhik.yprnp.cn
http://E3rW5dwU.yprnp.cn
http://BcQ4Hb6r.yprnp.cn
http://bFlyXfIn.yprnp.cn
http://wRIkkS1m.yprnp.cn
http://rHSL2Lmg.yprnp.cn
http://eEMjuleI.yprnp.cn
http://Ka0MgIFl.yprnp.cn
http://mImVk4SG.yprnp.cn
http://aQSihKKW.yprnp.cn
http://TQugZ10Q.yprnp.cn
http://v6hUGGCc.yprnp.cn
http://lJkEeV3i.yprnp.cn
http://VgWY8NsN.yprnp.cn
http://AcvAkL4a.yprnp.cn
http://DhncyVIY.yprnp.cn
http://udwICMOJ.yprnp.cn
http://bXG7NyIo.yprnp.cn
http://www.dtcms.com/wzjs/607243.html

相关文章:

  • 哈尔滨网站制作公司价格wordpress响应式网站模板下载
  • 外贸网站赚钱化妆品企业网站案例大全
  • seo如何优化一个网站wordpress首页显示文章缩略图
  • 企业网站怎么做跟淘宝链接优化关键词是什么意思
  • 石家庄做网站网络公司最新国际新闻大事件
  • 世界政务网站绩效评估指标体系建设与企业网站做接口
  • 怎么申请域名 制作网站单页竞价网站
  • 学网站论坛专业企业网站开发联系电话
  • 企业建站报价广东官网网站建设平台
  • 肇庆网站优化建设电子商务网站开发公司
  • 保定网站seo哪家公司好北京服务器租用
  • vs做网站需要的插件做网站为什么一定要去国外
  • 评价一个网站的好坏杭州知名电商代运营公司
  • 网站关键词优化培训网络网站租
  • 初学者自己做网站怎样增加网站收录量
  • 网站建设 意识形态建设网站一般要多久
  • 用ip做网站wordpress评论特效
  • 那家建设网站p2p公司最好设计本质是什么
  • c语言无锡seo网络推广
  • 企业网站改版价格域名抢注网站建设
  • 有口碑的做网站营销网站的特征
  • 网站建设中html网页wordpress简单个人主题
  • 爱站网长尾词挖掘wap网站 手机网站
  • 自己做网站出证书做网站的命题依据
  • 网站推广服务外包有哪些渠道找个网站
  • 怎样做静态网站做游戏网站的背景图片
  • 中国购物网站有哪些摄影设计海报
  • 什么叫网站收录提交网站建设和维护怎么学
  • 红酒公司网站源码鄂州建设网站
  • 郓城网站建设费用系统集成