我们知道一个变量的引用就是变量的别名。实质上变量名和引用名都是指向同一段内存单元。如果形参为变量的引用名,实参为变量名,那么在调用函数时,并不是为形参开辟了一个存储空间(常称为建立一个实参的拷贝),而是把实参变量的地址传给形参(引用名),这样引用名也指向了实参变量。
实例:
#include <iostream>
using namespace std;
class Person
{
public:
string name;
Person(string);
};
Person::Person(string n) //定义构造函数
{
name = n;
cout<<"Perosn(name):"<<name<<endl;
}
void modifyName(Person&p) //形参p是Person类对象的引用
{
string na; //用于接收从新定义的name
cin>>na;
p.name= na;
}
int main()
{
Personp("haha");
modifyName(&p);
cout<<"modifiedname:"<<name<<endl;
return0;
}