回顾:引用和指针
int swap2(int &x,int &y){//引用传值
}
swap2(a,b);
int swap2(int *x ,int *y){//指针传值
}
swap2(&x,&y),传入的时候要传入指针型变量,记得加取地址符
新内容
关于函数中传值是否传入引用
如果函数中修改的变量是临时变量,又是放入引用值,编译器会报错,(部分会报错)
即临时变量引用,编译器会报错,引用临时变量不可以
例如
ostream& operator(ostream& mycout,Cmycomplex & z){//这里z引用了临时变量
。。。
return mycout;
}
cout << z1+z2;//会报错,这里首先+的重载返回的是临时变量
//修改:
ostream& operator(ostream& mycout,const Cmycomplex & z){//z变成了常量的引用,这时候再编译就能通过,const使引用变为只读
。。。
return mycout;
}
cout << z1+z2;//可以通过
const此处作用就是让变量变成只读引用,加了const之后就不可以对其进行修改了。
this指针
this指针指向实例自己,*this就是自身
Node returnmyself(){
return *this;
}
前置++,++i
Cmytime & Cmytime :: operator++(){//注意返回值是带引用的,注意函数的没有引用的返回值和参数都是临时变量
s++;
return *this;
}//返回对象本身,并且返回的是引用值,而不是临时值
后置++,i++,不返回引用
Cmytime Cmytime:: operator++(int){//这里int是哑元,没有实际意义,不要返回临时变量的引用
const Cmytime oldt = *this;
s++;
return oldt;
}
const知识点
const修饰函数的时候表明此函数只能只读类成员
class Node{
void Show() const{
}//加上const表示此函数只能读类中的成员,不允许修改成员
}