c++面对对象设计 2
第二节
reference引用
int max;
int &refmax= max;(refmax是引用的符号)
不能重复使用,可以引用引用,
也可以引用一个指针(地址)
int a, *p;
int &m = a;
p = &m; //&m前面有类型符号时,如int,表引用说明;如果没有则是取变量地址
*p = 10;
如果声明一个常量const引用,不可以直接改变引用值,但可以改变被引用的数的值
不能建立void引用,不能建立引用的数组,不能建立指向引用的指针int & *p(指向引用的指针可以使用)
用途:主要用来作函数的参数或者函数的返回值
void swap(int &a, int &b)
{
int temp;
temp = a; a= b; b= temp;}
int main…
int i,j;
…
swap(i.j);
…结果是i,j交换值
引用和指针变量作为行参的区别
1引用作为形参,实参是变量值;指针作为。。。是地址
函数引用:
例1,
int &f(int x)
{
a=a+x;//a为全局变量或者静态局部变量static int a = 4;
return a;
}
//函数返回a的引用(f(t) = 20//可以将数值赋给返回的引用a,只有引用才能这样用)
内联函数
关键字inline必须与函数定义体放一起才能使函数称为内联函数,放在函数声明前面不起作用
函数体内出现循环或者递归等复杂的结构控制语句时,不适合定义为内联函数
作用域运算符
float a=13.5
int main..
int a = 3;
cout << a..
cout << ::a
//a是局部变量的a,::a是全局变量的a
字符串变量
string = string2;
字符串的赋值不用考虑长度
可以对字符串变量中的某一字符进行操作 string2[2] = ‘a’
字符串以“/0”结尾,但不包含/0
=+。。。
字符串数组string name[3] = {“Zhang”,“Li”,“Wang”};
动态分配/撤销内存new/delete
<指针名> = new <类型名>(<数值>)/[<数量>]
delete <指针名>
delete {}<指针名>//释放一定数量的空间