第六章总结:
1.数组:数组元素在内存中顺次存放并且地址是连续的
(1)数组名字是数组首元素的地址
(2)数组名是一个常量(不可以写成:a++)
2.对象数组:
声明:类名 数组名[元素个数];
访问方法:通过下标访问 数组名[下标].成员名
(数组中每一个元素对象被创建时,系统都会调用类构造函数初始化该对象
通过初始化列表赋值。每个对象被删除时,系统都要调用一次析构函数)
3. 指针变量:用于存放地址的变量(可以是void *a)
4.指向常量的指针const char *n;不能通过指针来改变所指对象的值,
但指针本身可以改变,可以指向另外的对象
5.指针常量:char *const n,则指针值不可以改变
6.a[i]==*(pa+i)==*(a+i)==pa[i]
7.指针数组:Point *pa[2];(里面的元素都是指针)
8.指向函数的指针:存储类型 数据类型 (*函数指针名)();
9.对象指针:声明形式
类名 *对象指针名;
Point A(5,10);
Piont *ptr;
ptr=&A;
通过指针访问对象成员
对象指针名->成员名
ptr->getx() == (*ptr).getx();
10.指向类的非静态成员的指针:
int (Point::*p_GetX)()=Point::GetX;
//(1)使用成员函数指针访问成员函数
cout<<(A.*p_GetX)()<<endl;
//(2)使用对象指针访问成员函数
cout<<(p1->GetX)()<<endl;
//(3)使用对象名访问成员函数
cout<<A.GetX()<<endl; }
11.指针访问类的静态数据成员:
(类内)static int countP; //静态数据成员引用性说明
(类外)int Point::countP=0; //静态数据成员定义性说明
(主函数)int *count=&Point::countP; cout<<*count<<endl;
(类内)static void GetC() //静态函数成员
{ cout<<countP<<endl; }
static int countP;
(类外)int Point::countP=0;
(主函数内)void (*gc)()=Point::GetC;
gc();
12.动态多维数组:
char (*fp)[3];
fp = new char[2][3];
13.#include<cstring>
strcat(连接),strcpy(复制),strcmp(比较),strlen(求长度),
strlwr(转换为小写),strupr(转换为大写)