class X{
publilc:
int& m_y;
X(int& a);
};
X::X(int& a):m_y(a){ }
函数不能返回本地变量的引用&指针;可以返回对象。
#include<assert.h>
const int SIZE=32;
double myarray[SIZE];
double& subscript(const int i){
return myarray[i]; //正确,返回的是全局变量
}
int main(){
for(int i=0i<SIZE;i++){
myarray[i]=i*0.5;
}
double value=subscript(12);
subscript(3)=34.5;//相当于myarray[3]=34.5
}
void func(const int &y,int& z){
z=z*5;//正确
y+=8;//错误
}
void func(int &);
func(i*3);//错误,引用的参数必须是一个可以作为左值的内容
void func(const int &);
func(i*3);//正确,可以将i*3看成匿名的const变量
void func(int &);
const int temp@=i*3;
func(temp@);//错误