const :
常量标识符(听到还有常量函数,常量指针) const int =3; 常量不可被修改,用#define(据说是宏定义(编译之前不检查语法错误),以后在补充)是一样的,让过放在函数之前,
const int *p( == int const *p) = &x 用*p = 3是不对的, 但x = 3是对的, 同时在这里p = &y也是可以的,相当于把 y 里的值给了 x 。
int * const p = &x 在这之中,const p成了地址常量, 用* p可以改变 x 的值,
int const &z = x在这之中,z 不可变,x 是可变的
const int * const p p的地址为常量,p的内容也是常量。
int fun ( int num) const { ......... ; }此为常量函数,每次的返回值 都会返回到同一个地址,无限覆盖。
1、int x = 3;const int &y = x;使x = 5是可以的,y = 5,是不可以的。
2、int x = 3;const y = x;在执行这样的操作 y = 5 不对,
3、int x = 3;const int y = &x y = 5 不对, x = 5 正确。
4、int x = 3,z = 4; int * const y = & x 之后再 int * const y = & z 不对。
函数(默认值):
在申明的时候带了默认值,在定义的时候不用再次赋值,默认值只能放在右侧。
在重载的时候,计算机的会以 name_int_int 和name_int_int_int 的方式来记录含不同数目参数的函数。
inline(内联函数) 只是在函数定义的时候对系统进行建议,
内存管理:
内存是资源,管理意味着申请(c :malloc ;c++:new )与还原(c:free ;c++:delete )。
c: void malloc (size_t size )
void free ( void *malloc )
c++:int a = new int [10]申请10个整形空间
if (null ==p )还要判断是否申请成功
delete [ ] a;释放内存
a = NULL;对于堆的释放最后还要 置空