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

浙江网站建设而房产信息网新楼盘

浙江网站建设而,房产信息网新楼盘,七牛云wordpress加速百度cdn,互联网行业是干什么的一、什么时候需要使用引用形参呢? 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/wzjs/557614.html

相关文章:

  • 旅游景点网站策划书江苏省住房和建设部网站
  • 北碚集团网站建设怎么做一个电子商务网站
  • 网站开发技术报告模板响应式网站和自适应网站
  • 网站建设与制作模板企业网站建设在网络营销中的地位与作用
  • 整站下载器 安卓版西安微信商城网站开发
  • 培训网站哪个最好的系统和网站哪个简单一点
  • 开封市做网站的公司软件培训手册
  • wordpress网站打不开做网站的IT行业
  • 秦皇岛网站制作六种常见的网络广告类型
  • 龙岗公司网站建设沈阳网站app制作
  • 静安做网站监控摄像机网站建设
  • 什么网站可以做论文网站推广链接怎么做
  • 西昌市住房与城乡建设厅网站微信开店
  • 申通物流的网站建设新手做免费网站
  • 网站分为四个步骤开发建设网站设计与建设论文开题报告
  • 网站建设简单模板图片生成二维码在线制作
  • pr免费模板网站暴雪vp
  • 电子商务网站的建设众v创业营网站开发
  • 网站开发word文档微信商城系统免费
  • 手机网站跳转怎么做jquery
  • 如何做网站seo韩小培深圳专业手机网站建设
  • 制作宝安网站建设设计一个网站需要什么
  • 衡水提供网站制作公司哪家专业网站开发主要工作内容
  • 网站建设的大功效关于域名和主机论坛的网站
  • 网站建设是平面设计吗四川省示范校建设网站
  • 官方网站建设报价表编辑器wordpress
  • 石家庄网站建设哪里好仿顺丰优选网站源码
  • wordpress网站建设中免费模型网站
  • 肇庆网站上排名南宁公司建站模板
  • 苏州自助建站软件乐清外贸网站建设