c++/oop---引用/动态内存/内联函数/函数重载
c++/oop
引用
就相当于是原变量
int & a = b
一个神奇的写法:给函数赋返回值
1 int n = 4; 2 int & SetValue() { 3 return n; 4 } 5 int main() { 6 SetValue() = 40; 7 cout << n; 8 return 0; 9 }
其实我没看出这有什么卵用
常引用
const int & r = n
这时r n都不能改变值
const T 类型的常变量和 const T & 类型的引用则不能用来初始化 T & 类型的引用,除非进行强制类型转换
不能通过常引用修改其引用的变量,但可以修改变量改变常引用的值
int n=3; const int & r = n; r = 5; //error n = 4; //ok
此时n=r=4
new 动态内存分配
P = new Type;
Type 数据类型,也可以是数组
P 指针,指向内存的第一个地址
但是开数组的时候可以直接写 P[0] P[100] 这样
int *p = new int; *p = 5; cout<' '<<*p<<endl; //0x1ee86b70 5 delete p; int *s = new int[5]; s[1]=5; cout<
' '<1]<<endl; //0x1ee16b70 5 delete [] s;
delete 释放空间
delete p 删除指针 p 指向的空间
delete [] s 删除数组
内联函数
加 inline ,能变快
原理是把函数语句放到调用的地方,这样减少了调用函数的时间
函数重载
多个函数,参数不同,名字相同,编译器认得出
函数的缺省参数
定义的时候给参数缺省值,如果调用时不传参那就用缺省值
只能是最右边的连续若干个参数,不写的时候一起不写
真的鸡肋,可能写庞大的程序时有点用
“函数参数可缺省的目的在于提高程序的可扩充性。 即如果某个写好的函数要添加新的参数,而原先那些调用该函数的语句, 未必需要使用新增的参数,那么为了避免对原先那些函数调用语句的修 改,就可以使用缺省参数。”