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

企业网站建设的层次泰州建筑人才网

企业网站建设的层次,泰州建筑人才网,最新军事新闻热点事件,建站有哪些需求一、什么时候需要使用引用形参呢? 1、需要改变传入参数的值,如swap(int & a, int & b);我们的目的是交换传入参数的值,如果不使用引入形参,如swap(int a,int b),那么该函数将按值传递,并不会实际改…

一、什么时候需要使用引用形参呢?

1、需要改变传入参数的值,如swap(int & a, int & b);我们的目的是交换传入参数的值,如果不使用引入形参,如swap(int a,int b),那么该函数将按值传递,并不会实际改变传入参数的值,所以这种情况需要使用引用形参;
2、节约内存和加快速度,对于基本类型可以不用使用引用参数,但是对于结构、数组或者较为复杂的类对象,使用引用参数可以避免传参时创建值相同的临时变量,而是直接使用引用的变量;

二、为什么应尽可能将引用形参声明为const呢?

1、需要改变传入参数的值的时候,不能声明为const;
2、不需要改变传入参数的值的时候,我们想要的效果其实和按值传递是一样的;这个时候使用const有三个好处:
2.1 使用const可以避免不小心修改传入的引用变量;
2.2 使用const函数可以使函数能够接收const变量和非const变量,不使用const的话,函数只能接收非const变量;
2.3 使用const可以使得引用形参能够接收临时变量(右值)

三、自己遇到的问题:

//Add.h
#ifndef ADD_H_
#define ADD_H_
class Add
{double a;
public:Add();Add(double m);Add operator+(Add & d) const;//reload +//friend Add operator+(Add & a, Add & b); //friend;//operator double() const; // transform 
};
#endif

可以看到这里重载+运算符的函数 Add operator+(Add & d) const; 这里的引用形参并未加const;

//这个是Add类的方法实现;
#include <iostream>
#include "add.h"Add::Add()
{a = 0.0;
}
Add::Add(double m)
{a = m;
}
Add Add::operator+(Add & d) const
{std::cout << "member func: ";return Add(a+d.a);
}
//Add operator+(Add & a, Add & b)
//{
//    std::cout << "friend func: ";
//    return Add(a.a+b.a);
//}
// Add::operator double() const
// {
//     return a;
// }
// 使用测试Add类
#include "add.h"int main()
{using namespace std;Add a = 1.0;double b = 2.0;Add c = 1.0;Add total;total = a+b; //use member func+Add total_2;total_2 = a+c;return 0;
}

由于为Add类声明重载定义+运算符的时候,引用形参没有使用const ,所以在total=a+b;这行代码就报错了,因为b为double类型,然后因为Add类有Add(double)形式的构造函数,所以a+b这个代码,理想的情况是这里会将b转为Add类型(会创建一个Add类型的临时变量),然后做Add类的加法运算,但是由于前面提到的引用形参没有使用const ,所以这里的临时变量没法传给函数;加上const即可;

http://www.dtcms.com/a/514299.html

相关文章:

  • 网页模板免费下载网站新余百度网站建设
  • 张家港市住房城乡建设局网站韩国跨境电商有哪些平台
  • 求网站建设网站优化工作wordpress本地安装教程
  • 产品营销类网站商业网站建设软件
  • 今网科技网站建设如何用微信公众号做企业网站
  • 宝塔怎么创建网站深圳旅游必去的十大地方
  • 沈阳网站制作聚艺科技网站维护运营
  • 网站备案条件网络代码
  • 做网站交接需要哪些权限wordpress 视频站
  • 网站制作开发的步骤和方法淘宝店运营的方法和技巧
  • 主机开通成功网站建设中互联网推广品牌
  • 茂名放心营销网站开发建设银行内部网站源码
  • 无锡哪里做网站个人外贸网站制作
  • dedecms 做门户网站网站建设首选亿企联盟
  • 北京知名网站设计公司英文网站建设 淮安
  • 用python怎么做网站沙田镇做网站
  • 哪些做调查问卷挣钱的网站注册平台
  • 怎么加入网站做微商城怎么做网站卖产品
  • 苏州市城乡建设局网站小程序科技有限公司
  • 广州手机网站建设工信部网站备案信息查询
  • 可以用来做视频网站的视频外链吗wordpress手机登录跳转页面
  • 网页 网站 站点的区别网站上传文件功能实现
  • 购买网站服务如何做支出备案域名被拿去做违法
  • 互联网企业网站模板网站空间多少钱一年
  • 用ps做网站网页中国嘉兴门户网站
  • 贵阳建设网站培训辽宁建设工程信息网注册流程
  • vps 网站备案WordPress缓存插件开发
  • 零基础学jsp网站开发wordpress autopost
  • 个人网站不备案可以吗平面设计专业课程有哪些
  • 北京兼职做网站推广wap网站制作开发公司