首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

引用参数 到底起什么作用?该如何解决

2012-02-14 
引用参数 到底起什么作用?#includestdafx.h #includeiostreamusingstd::coutusingstd::endl#include

引用参数 到底起什么作用?
#include   "stdafx.h "
#include   <iostream>

using   std::cout;
using   std::endl;

#include   <iomanip>

using   std::setw;
using   std::setfill;

struct   time{
int   hour;
int   minute;
int   senond;
};

void   print1(const   time   &t)
{
cout   < <   setfill( '* ')   < <   setw(2)   < <   t.hour   < <   ": "
< <   setw(2)   < <   t.minute   < <   ": "   < <   setw(2)   < <   t.senond   < <   endl;
}


int   main(int   argc,   char*   argv[])
{
time   dinnertime;
dinnertime.hour   =   10;
dinnertime.minute   =   20;
dinnertime.senond   =   2;

print1(dinnertime);
return   0;
}

以这个例子为例,大家给我讲讲print1用引用参数和不用引用参数到底有什么区别?

[解决办法]
1。修改这个参数就是修改传入的那个
2。可以节省传送费用

print1如果不引用出入参数后就要赋值一个副本,是不必要的

[解决办法]
避免产生副本,
这样可以使得函数中的操作都是针对实参进行,
同时可以节省副本生成的 时间、空间 消耗。
[解决办法]
传地址,减少消耗。
而且如果加const,就是可以修改直接修改从外面传进来的值,不用返回
介绍构造和析构的消耗
[解决办法]
引用参数与非引用参数:
非引用参数: 拷贝一个实参一个幅本,它们有不同的内存地址, 对形参的任何修改,并不能改变实参的值.
引用参数: 它是实参的一个别名,它们指向同一内存地址, 因此它的效率要高很多,同时它又引出正值问题: 对它的任何修改都将反映到实参上. 可以加const限定符来指明不可修改.

热点排行