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

国家电力安全网站两学一做手机如何创建网站

国家电力安全网站两学一做,手机如何创建网站,python可以做网站开发吗,南京网站开发南京乐识不错目录 一,函数模版 运行结果​编辑 运行结果 二,类模板 1、基本语法 2、int数组展开 3、string数组展开 在古代,印刷术没有发明出来之前,知识的传播极其不方便,在C语言中也是,对于一个函数&#xff0…

        

目录

一,函数模版

运行结果​编辑

运行结果

二,类模板

1、基本语法

2、int数组展开

3、string数组展开


        在古代,印刷术没有发明出来之前,知识的传播极其不方便,在C语言中也是,对于一个函数,不同的参数类型,需要反复地CV修改,那么在C++中,就出现了极其方便的工具,来简化操作,提高效率。

一,函数模版

首先我们就拿swap函数来举例,当然在后续引入数据库之后,就可以直接使用了,这里我们拿来举例子

void Swap(int& left, int& right)
{int temp = left;left = right;right = temp;
}
void Swap(double& left, double& right)
{double temp = left;left = right;right = temp;
}
void Swap(string& left, string& right)
{string temp = left;left = right;right = temp;
}
int main()
{int  a = 1, b = 2;double x = 1.1,y = 2.2;string m = "abc", n = "qwe";swap(a, b);swap(x, y);swap(m, n);cout << a << " " << b << endl << x << " " << y<<endl<<m<<"  "<<n;}

运行结果

写起来很不方便,换个类型就得再写一遍参数列表,那么怎么解决这个问题呢

答案就是用函数模版,让编译器去替咱们干活

template <class T>
void mySwap(T& a, T& b) {T temp = a;a = b;b = temp;
}int main() {int x = 10, y = 20;mySwap(x, y);  cout << "x=" << x << ", y=" << y << endl;  double m = 1.5, n = 2.5;mySwap<double>(m, n);  cout << "m=" << m << ", n=" << n;  return 0;
}

运行结果

二,类模板

1、基本语法

template <typename T>  // 模板声明
class 类名 {
public:// 成员声明(使用T作为类型)
};

这里我们拿一个动态数组进行举例

在这个数组中,我在类内定义了打印,在类外重载了下标访问,实例化了两个数组进行演示

template <typename T, int size>  
class Array {
private:T arr[size];
public:T& operator[](int index) { }void print() {for (int i = 0; i < size; ++i) {cout << arr[i] << " ";}cout << endl;}
};
template <typename T, int size>
T& Array<T, size>::operator[](int index) {if (index < 0 || index >= size) {throw out_of_range("Index out of range");}return arr[index];
}
int main() {Array<int, 5> intArr; for (int i = 0; i < 5; ++i) {intArr[i] = i * 10;}intArr.print();Array<string, 3> strArr; strArr[1] = "Template";strArr[2] = "Magic";strArr.print();return 0;
}

2、运行结果

在这里对main中的两个实例化对象进行展开

2、int数组展开

class Array_int_5 {
private:int arr[5];  // 固定5个int的内存
public:int& operator[](int index) { if (index < 0 || index >= size) {throw out_of_range("Index out of range");}return arr[index]; }void print() {    for (int i = 0; i < size; ++i) {cout << arr[i] << " ";}cout << endl;
} }
};

这就是编译器对int数组的展开,其中intArr[i]=i*10展开是

intArr.operator[](i) = i * 10

其中 throw out_of_range 是C++中特有的处理问题的一种方式,抛异常,在数组下标范围错误时,就会弹出一下警告

3、string数组展开

class Array<string, 3> {string arr[3];
public:string& operator[](int index) {if (index < 0 || index >= 3)throw out_of_range("Index out of range");return arr[index];}void print() {    for (int i = 0; i < size; ++i) {cout << arr[i] << " ";
}
};

具体内容和上边类似,string的相关讲解将会在下一篇文章更新

以上就是本篇博客的全部内容啦,欢迎大家在评论区讨论交流!!!

http://www.dtcms.com/wzjs/497640.html

相关文章:

  • 做网站定金一般多少互联网广告平台代理
  • 网站怎么上传数据库西安网站seo推广
  • 东莞科技网站建设网站优化的关键词
  • 做动态网站用什么软件黄山搜索引擎优化
  • 做网站做论坛赚钱吗友情链接论坛
  • b2b网站发布信息平台互联网营销师怎么考
  • 公司的网站如何进行修改布局在线服务器网站
  • 西昌市住房与城乡建设厅网站百度收录方法
  • 网站开发大约多少钱网络营销推广专员
  • 网站建设微站创意营销
  • vs和dw做网站的区别培训网站制作
  • 大良营销网站建设案例百度地图下载2022新版安装
  • 一个空间做2个网站百度开户需要什么资质
  • 做百度联盟用什么做网站网推拉新app推广平台
  • 济南三合一网站建设新泰网站设计
  • 胶州建设工程信息网站厦门seo公司到1火星
  • 公司网站建设案例网站推广的作用在哪里
  • 微信招聘网站建设广州seo关键词优化外包
  • 南宁市做网站的公司石家庄线上推广平台
  • 企业门户网站数据库设计微商如何引流与推广
  • 做修车行业需要在哪个网站做推广百度客服中心人工在线电话
  • 成功案例 品牌网站百度识图在线使用一下
  • 网站在建设中模板百度收录网址提交
  • 南阳做网站公司哪家好seo是什么工作内容
  • 深圳英文网站建设下载百度官方网站
  • 网站建设教程在线seo优化信
  • 泰安三合一网站建设公司seo排名点击工具
  • 演示 又一个wordpress站点seo免费优化
  • 广州市手机网站建设今日国内新闻摘抄十条
  • 北仑网站建设培训学校近期国际新闻