C++ --- 对象指针
这里是Joe本人的学习笔记,如果能帮助到你,那我受宠若惊!
对象指针的一般概念:
类的对象在初始化的时候会在内存中占有内存空间,既可以通过对象名,也可以通过对象地址来访问每个对象。(这时就用到了对象指针)
对象指针的声明:
语法形式:
类名*对象指针名;
Point * pointer;//声明对象指针
Point p1;//创造对象
Pointper=&p1//把对象p1的地址赋给指针
用对象指针访问对象的成员:
对象指针名->成员名
指向类的非静态成员的指针、
指向对象成员的指针需要先声明、再赋值、最后引用
声明:
类型说明符 类名::*指针名;//指向数据成员的指针
类型说明符 (类名::*指针名)(参数表);//指向函数成员的指针
赋值:
数据成员: 指针名 = &类名::数据成员名;
函数成员: 指针名 = &类名::函数成员名;
注意:
(关于数据成员)
由于类是通过对象而实例化的,在声明类的对象时才会为具体的对象分配内存空间。
访问数据成员时,可以通过以下两种语法实现:
- 对象名.*类成员指针名
- 对象名->类成员指针名
(关于函数成员)
类的成员函数虽然并不在每个对象中复制一份副本,但是由于需要确定this指针,因而必须通过对象来调用非静态成员函数。
因此,经过上述对成员函数指针的赋值,也还不能用指针直接调用成员函数,而是需要声明类的对象,然后用以下形式利用指针调用成员函数:
(对象名.*类成员指针名)(参数表)
或
(对象指针名-->*类成员指针名)(参数表)