C++语言中,对象作为函数的参数和返回值的传递方式有 3 种:值传递、指针传递和引用传递。
1. 对象作为函数参数
把实参对象的值复制给形参对象,这种传递是单向的,只从实参到形参。因此,函数对形参值做的改变不会影响到实参。
例如: 对象作为函数参数应用。
#include <iostream>
using namespace std;
class Square //正方形
{
public:
Square(double len) :length(len) //构造函数
{}
void set(double len) //修改边长
{
length = len;
}
double get()//获取边长的值
{
return length;
}
void show(); //输出面积
private:
double length;//边长
};
void Square::show() //输出面积
{
cout << "正方形面积:" << length * length << endl;
}
void Add(Square s)//只是修改形参的值,对实参没有影响
{
double len = s.get() + 1; //len=原边长+1;
s.set(len);//修改s的边长
}
int main()
{
Square s(2);
cout << "边长增加前:" << endl;
s.show();
Add(s);
cout << "边长增加后:" << endl;
s.show();
return 0;
}
对象占用内存都比较大,一般都不传对象本身,而改为传对象引用或者对象指针。