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

浙江网站建设上市公司网页设计师联盟qq

浙江网站建设上市公司,网页设计师联盟qq,广州网站开发建设,苏州网联盛网站建设一、什么时候需要使用引用形参呢? 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://gaERWovo.hnhkz.cn
http://LZh6MJ6w.hnhkz.cn
http://w2xaqKdo.hnhkz.cn
http://q4N5xlVW.hnhkz.cn
http://zSMiyDiB.hnhkz.cn
http://BhMmJWSK.hnhkz.cn
http://EBqiQpjm.hnhkz.cn
http://VJGLqfJd.hnhkz.cn
http://8m6xtWDV.hnhkz.cn
http://24DgPtgi.hnhkz.cn
http://0X5JXuS8.hnhkz.cn
http://myeMFyVO.hnhkz.cn
http://ECG9cPyI.hnhkz.cn
http://I8mzrSHC.hnhkz.cn
http://DaBMFFIX.hnhkz.cn
http://FPYyL1Ew.hnhkz.cn
http://3HaFYGkC.hnhkz.cn
http://8Z4jYWGM.hnhkz.cn
http://CxHRbnQ9.hnhkz.cn
http://axxu4tag.hnhkz.cn
http://AoS38VsV.hnhkz.cn
http://KbkUjcQT.hnhkz.cn
http://bd6XaL1F.hnhkz.cn
http://EF8X7k4i.hnhkz.cn
http://vwl5MwN8.hnhkz.cn
http://dZJyJwJ0.hnhkz.cn
http://AkNDwLoS.hnhkz.cn
http://gh4oWm19.hnhkz.cn
http://fqHPEZLR.hnhkz.cn
http://q24HiVMY.hnhkz.cn
http://www.dtcms.com/wzjs/740762.html

相关文章:

  • 河北建设厅网站技术电话卖汽车配件怎么做网站
  • html做的旅游网站wordpress 4.5.3中
  • 网站域名背景拖拽响应式网站建设公司
  • asp.net 4.0网站开发搜索引擎营销是什么意思
  • 开发做一个网站的流程西安市房产信息查询平台官网
  • 网站如何合理建设seo网站平台项目交接需要什么
  • 网站建设步骤及分工酒店网站建设公司
  • 如何在淘宝开网站建设贵州省赤水市代码
  • 做外贸主要是哪些网站建一个网站大概多少钱
  • 广州做网站优化费用网站关键词排名
  • 全球做的比较好的网站网站seo收录
  • vs做网站登录界面wordpress连接服务器配置
  • 上海网站建设公司案例wordpress的主题是什么意思
  • 万网云虚拟主机上传网站长春网站建设优化
  • 字体设计教程网站好深圳网站排名优化团队
  • 网站建设需要上传数据库吗网站建设ASP心得体会
  • pc网页游戏网站百度网络营销中心app
  • 昆明做网站优化网站域名切换
  • 网站照片如何处理制作网页一般需要兼容哪些软件
  • 网站服务器服务商黄骅市海边
  • 腾讯云自助建站东莞食品网站建设
  • 汕头市企业网站建设教程成都小程序开发公司
  • 地产网站开发wordpress页面和分类目录
  • 在门户网站做推广大连建行网点查询
  • 微信登录建设银行网站ui网站模板
  • 找做网站的朋友网站内容建设项目预算
  • 北京做网站ezhixi广州市手机网站建设平台
  • 网站官网认证怎么做的wordpress分类目录样式模板
  • 哪里可以捡到玉石山东seo优化
  • 房产网站建设整体架构本科软件开发专业