好无聊,好无聊,好无聊。今天看了点英语,要考6级了,考了5年了。6级还没有过,有点、有点……但总是看不进,感觉这次又过不了了。只是好困啊……
局部静态对象:static 修饰的变量,直到程序终止才被销毁
//例子
int a(){
static int c=0;
return ++c;
}
void main(){
for(int I=0;i<10;i++){
cout<<a()<<endl;
}
此时输出1-10。
默认实参
string screen(int h=24,int w=48,char bg=' ');
//调用
s=screen(); //等价于screen(24,48,' ')
s=screen(22) //screen(22,48,' ')
s=screen(, ,' !'); //错误:只能省略尾部实参
s=screen('!'); //调用screen('!',48,' '),此时会把char字符强制转换成int类型
//注意,一旦一个形参被赋予了默认值,后面的所有形参都必须有默认值
string s(int h=24,int w); //错误,默认参数不在形参列表结尾
函数指针:
bool lengthCa(const string &,const string &); //一个返回值是bool类型的函数
bool (*p)(const string &,const string &); //p指向一个2参数函数
//使用 ,将lengthCa的地址赋给p
p=lengthCa; //p指向名为length的函数
p=&lengthCa; //等价的
//调用,三种等价形式
bool b1=p("a","b");
bool b2=(*p)("a","b");
boole b3=lengthCa("a","b");
构造函数初始值列表:
Ace(const string &a,unsigned n,double s):bN(a),aN(n),cN(s*n){}
//用前2个初始化bN,aN的,2和3参数初始化cN
new和delete
int *p=new int(30); //*p=30 分配基础类型,初始化为30
delete p; //释放内存
//分配数组
int *arr=new arr[10];
arr[0]=1;
delete []arr; //释放