关于&都有哪些用法?
为什么有的加&有的没有呢?比如:
bool operator == (const STATUS& sa, const STATUS& sb)//这个operator前没有&
{
...
}
A & operate =(const A & other);//这个在operate前就有
请问在operate前的这个&是什么意思?
[解决办法]
大致说说引用
1.别名 int &b=a;
引用本身并不占用存储单元,而且不能建立对数组的引用。
2.引用作为参数;
void swap(int &a,int &b)
使用引用传参,在内存中并没有实参的副本,而是直接对实参操作;如果传递的是对象,需要调用拷贝构造。
3.常引用;
const int &b=a;
b=0;//error
string Fun();
void SFun(string &s);
SFun( "jackill ")//error; 临时常量是const类型,不能转换成非const;
4.引用作为返回值
float temp;
float &fn2(float r) //定义函数fn2,它以引用方式返回函数值
{
temp=(float)(r*r*3.14);
return temp;
}
规则:不能返回局部变量的引用;不能返回堆内存的引用;可以返回类成员的引用;操作符重载要求必须返回一个引用。
5.多态
class A;
class B:public A{}
B b;
A &a= b; //A *a=new B();
[解决办法]
class A
{
public:
A & operator =(const A &i);
};
void main()
{
A a,b,c;
a = b = c ;
}
先谢谢上面的各位啊,这个怎么编不过呀,
==================
你函数不定义怎么用,空函数那写个
{}