C++学习笔记(三)

关于const的一点补充

(1)不可通过常量指针修改其指向的内容。
(2)不可以常量指针赋值给非常量指针,反过来可以。因为这样就失去了常量指针的安全性。

const int * p1;int * p2;
p1=p2;//可以
p2=p1;//错误
p2=(int *)p1;//可以,强制类型转换

动态内存分配

用new运算符实现动态内存分配

  • 用法一:分配一个变量
    例如p=new T;中,T是类型名,比如int,double等,p是类型为T*的指针。用处是动态分配出一个sizeo(T)大小的内存,并将起始地址赋值给p。然后就可以用p这个指针修改该内存空间的内容。例如:
 int *pn;
 pn=new int;
 *pn=5;
  • 用法二:分配一个数组
    例如p=new T[N];(N是元素个数,可以是整型表达式),作用是动态分配出N*sizeo(T)大小的内存,并将起始地址赋给指针p。

  • new运算符的返回值类型
    new T;new T[N]的返回值类型都是T*。

用delete运算符释放动态分配的内存

格式:delete 指针;//该指针必须指向new出来的空间

注意:对于一片空间,delete操作只能执行一次

用法示例如下:

 int *p=new int;
 *p=5;
 delete p;

用delete运算符释放动态分配的数组

格式:delete [] 指针

内联函数

定义方法:在函数定义前加inline关键字即可。
例如:

inline int max(int a,int b)
{
    if(a>b) return a;
return b;
}

函数重载

定义:一个或多个函数,名字相同,参数个数或参数类型不同,就叫函数的重载。

优点:使函数命名变得简单。

实现方法:根据调用语句中实参的个数和类型判断。

注意:如果只有函数返回值不同,名字和参数表都一样,不是重载,是重复定义。

函数的缺省函数

解释:定义函数时可以让最右边的连续若干个参数有缺省值,这样在调用时如果相应位置不写参数,对应的参数就是缺省值。

目的:提高程序的可扩充性。

猜你喜欢

转载自www.cnblogs.com/CCchaos/p/12243195.html