引用
基本
//reference
int n = 5;
int & r = n;
r = 4;
cout<<n<<endl;
做返回值
//reference as return value
int& setvalue() {return m;}
setvalue() = 40;
cout<<m<<endl;
cout<<setvalue()<<endl;
常引用
不能用常引用给一般引用赋值.理解上可以看作常引用因为const的修饰限定,不含有正常引用的全部功能,因此不能用来给一般引用赋值.
const int & cr = n;
// cr =100; error : can't change the value of n by changing cr;
n = 20;
cout<<cr<<endl;
const int & cr2 = r;
cout<<cr2<<endl;
//int & r2 = cr; error
常量
常量
常量指针
不能通过常指针改变指向的变量,可以改变常指针的指向.
常指针不能给一般指针赋值.仍可作上述理解.
int a=1,b=2;
const int *p = &a;
//*p = 3 error
p = &b;
b = 4
动态内存分配
new delete
int *ptr;
ptr = new int ;
*ptr = 4;
cout<<ptr<<endl; //0x100603bb0
delete ptr;
cout<<ptr<<endl; //0x100603bb0
ptr = new int[20] ;
ptr[4] = 4;
cout<<ptr<<endl;//0x100603bc0
delete [] ptr;
cout<<ptr<<endl;//0x100603bc0
注意,不能多次删除
内联
inline int max(int a,int b){return a>b?a:b;}
重载
参数表具有某些不同,避免二义性.
缺省参数
缺省从右边开始的连续多少个