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

网站开发的总结与展望建网站的系统

网站开发的总结与展望,建网站的系统,制图网站,免费申请一个qq号C中的类模板 类模板 类模板在C中是一种非常强大的工具#xff0c;它允许程序员编写与数据类型无关的代码。简单来说#xff0c;类模板允许你定义一个蓝图#xff0c;这个蓝图可以用来生成具体类型的类。使用类模板可以提高代码的复用性#xff0c;减少重复代码#xff0…C中的类模板 类模板 类模板在C中是一种非常强大的工具它允许程序员编写与数据类型无关的代码。简单来说类模板允许你定义一个蓝图这个蓝图可以用来生成具体类型的类。使用类模板可以提高代码的复用性减少重复代码使得代码更加简洁、易于理解和维护。 定义类模板 类模板的定义以关键字 template 开始后面跟着模板参数列表。模板参数列表包含在尖括号 中里面定义了一个或多个模板参数。模板参数可以是类或者类型比如 typename T 或者 class T也可以是非类型参数比如整型常量。 template typename T class Box { public:T contents;void set(const T value) {contents value;}T get() {return contents;} };在这个例子中Box 是一个类模板它有一个模板参数 T。这意味着你可以用任意类型替换 T从而生成该类型的 Box 类。 实例化类模板 当你使用一个类模板时需要指定模板参数这个过程称为模板实例化。实例化模板类时你需要在类名后面加上模板参数参数放在尖括号 中。 Boxint intBox; Boxdouble doubleBox;在这里我们创建了两个 Box 对象一个用于整数另一个用于双精度浮点数。每个对象都可以存储和返回其类型的值。 类模板的成员函数 类模板的成员函数通常在类定义内部定义但也可以在外部定义。如果在外部定义成员函数需要在函数定义之前加上 template typename T并且在函数名前使用类模板的名称和模板参数列表。 template typename T void BoxT::set(const T value) {contents value; }template typename T T BoxT::get() {return contents; }特化类模板 有时候对于特定的数据类型你可能希望类模板有不同的行为。这时候可以使用模板特化。特化允许你为模板参数的特定类型定义一个特殊的类模板实现。 template class Boxchar { public:char contents;void set(const char value) {contents value 1; // Just an example modification}char get() {return contents;} };这个例子展示了一个特化的 Box 类模板它仅适用于 char 类型。对于 char 类型的 Boxset 函数有了不同的行为。 类模板是C模板编程的基石它提供了一种灵活的方式来创建可以操作任意类型的类。通过学习和使用类模板你可以编写更通用、更高效的C代码。 代码示例 #include iostream #include string using namespace std;// 定义一个Student类用于存储学生信息 class Student {string name; // 学生姓名double score; // 学生分数public:// 构造函数允许带默认值便于创建无特定信息的学生对象Student(string nno, double s33.3) {name n;score s;}// 声明友元函数允许非成员函数访问私有成员// 重载运算符以便于直接输出Student对象friend ostream operator(ostream o, Student s); };// 实现重载的运算符 ostream operator(ostream o, Student s) {cout s.name , s.score endl; // 输出学生的姓名和分数然后换行return o; // 返回ostream对象支持链式调用 }// 定义一个模板类Vector可用于存储任意类型的动态数组 templatetypename T class Vector {T* data; // 指向数组的指针int capacity; // 数组的容量int n; // 数组当前存储的元素数量public:// 构造函数初始化数组的容量和大小Vector(int cap3) {data new T[cap]; // 动态分配存储空间if (data 0) { // 如果分配失败则设置容量和大小为0cap 0;n 0;return;}capacity cap; // 设置容量n 0; // 初始化元素数量为0}// 向数组末尾添加一个元素void push_back(T e) {if (n capacity) { // 如果当前大小已达容量cout 增加容量 endl; // 输出提示信息T* p new T[2 * capacity]; // 申请新的两倍大小的数组if (p) {for (int i 0; i n; i)p[i] data[i]; // 复制旧数据到新数组delete[]data; // 释放旧数组data p; // 更新指针指向新数组capacity 2 * capacity; // 更新容量}else {return; // 如果新数组分配失败直接返回}}data[n] e; // 将新元素添加到数组末尾n; // 元素数量增加}// 重载[]运算符允许通过下标访问数组元素T operator[](int i)const {if (i 0 || i n)throw下标非法; // 如果下标越界抛出异常return data[i]; // 返回下标对应的元素}// 返回数组当前存储的元素数量int size() {return n;} };int main() {// 创建一个Vector对象用于存储Student对象VectorStudent v;// 向Vector中添加Student对象v.push_back(Student(Li,45.7));v.push_back(Student(Ai, 45.7));v.push_back(Student(Bi, 45.7));// 遍历Vector并输出每个Student对象for (int i 0; i v.size(); i)cout v[i];cout endl;// 继续向Vector中添加Student对象v.push_back(Student(Liu, 45.7));v.push_back(Student(Lsi, 45.7));// 再次遍历Vector并输出每个Student对象for (int i 0; i v.size(); i)cout v[i];cout endl;return 0; }
http://www.dnsts.com.cn/news/172026.html

相关文章:

  • 怎么经营团购网站个人备案域名可以做企业网站吗
  • 怎么在网上创建网站网站外包制作
  • 汕头哪里做网站写一篇软文1000字
  • 新建的网站百度搜不到网络在线培训网站建设方案
  • 上海市各区建设局网站程序员网站建设
  • 网站排版wordpress小说网站模板下载地址
  • 怎样用文档做网站首页手机h5网站开发
  • wordpress完美迁站教程郑州便宜网站建设公司
  • 音乐相册制作网站网站开发在线
  • 中国建材建设网站动漫设计专业需要学什么
  • 湖北网站建设xiduyun东台做网站的
  • 常州优化网站门户网站模板html5
  • 旅游网站开发工具wordpress md 方程组
  • 江门做网站软件京津冀协同发展英文
  • 学校网站开发价格初学者做网站的软件
  • iis配置网站访问权限东莞企业网站费用
  • 网站建设通如何自己做电商
  • 苏州做网站找哪家好网站域名查询
  • 重庆工厂网站建设代练平台
  • 怎么选择网站建设公司网站的栏目结构简图怎么做
  • 廊坊做网站的大公司国外文本排版设计网站
  • 益阳一站式网站建设公司注册公司没有地址怎么解决
  • 南京做机床的公司网站敬请期待的意思
  • 百度网站v2升级到v3怎么做wordpress破解插件放心用吗
  • php网站开发面试做外贸网站案例
  • seo 网站地图优化网站开发遇到的最大困难
  • 用花生壳怎么做网站的服务器魏县住房和城乡建设局网站
  • 手机版做网站怎么做网页长图
  • 网站导航怎么做外链北欧风格装修效果图
  • 权威的顺德网站建设网站不备案不能访问