拿类对象作为函数参数举例,三种形式如下:
#include<iostream>
using namespace std;
class cube
{
public:
void setM_h(int h)
{
M_h = h;
}
int getM_h()
{
return M_h;
}
void setM_k(int k)
{
M_k = k;
}
int getM_k()
{
return M_k;
}
void setM_l(int l)
{
M_l = l;
}
int getM_l()
{
return M_l;
}
int gets()
{
return 2 * (M_l * M_k + M_l * M_h + M_h * M_k);
}
int getv()
{
return M_l * M_k * M_h;
}
private:
int M_h;
int M_l;
int M_k;
};
bool issame(cube c1, cube c2)
{
if (c1.getM_h()==c2.getM_h()&&c1.getM_k()==c2.getM_k()&&c1.getM_l()==c2.getM_l())
{
return true;
}
return false;
}
int main()
{
cube c1;
cube c2;
c1.setM_h(10);
c1.setM_k(10);
c1.setM_l(10);
c2.setM_h(10);
c2.setM_k(10);
c2.setM_l(10);
issame(c1, c2);
int a= issame(c1, c2);
cout << "面积为:" << c1.gets() << endl;
cout << "体积为:" << c1.getv() << endl;
if (a)
{
cout << "面积相等!" << endl;
}
else
{
cout << "面积不相等!" << endl;
}
system("pause");
return 0;
}
引用传递可以当作为另一种指针传递,共同点是都可以修饰实参,改变实参的值,引用传递的优点是方便,其本质是指针常量,其本质是指向不可以更改,值可以更改下面举个例子证明一下:
#include<iostream>
using namespace std;
int main()
{
int a = 10;
int* const b = &a;
*b = 20;
int* const c = b;
*c = 30;
cout << &a << endl;
cout << b << endl;
cout << c << endl;
system("pause");
return 0;
}
结果如下:  以上输出的地址都一样,证明了指向一直都未改变,只是值发生了改变。 引用在编译器中的转换: int a=10; int &b=a;//编译器转换为int *const b=&a; 以上就是本次的分享。
|