C++深入理解:成员指针与this指针的实战指南

1 下载量 110 浏览量 更新于2024-09-01 收藏 70KB PDF 举报
本指南详细介绍了C++编程中指向成员的指针和this指针的基本使用方法。首先,我们关注指向成员的指针,这是一种特殊类型的指针声明,用于访问类的成员。其声明格式如下: 1. 存储类说明符(如`static`、`extern`等,可选) 2. cv-qualifiers(const和volatile,可选) 3. 类型说明符,即成员的类型,而非类本身 4. Microsoft特有的ms-modifier(如`volatile`,仅限Windows平台,可选) 5. 类的限定名后接`::*`运算符 6. 可选的cv-qualifiers再次应用 7. 指向成员的标识符 8. 初始化表达式,可选,包括`=`和`&`运算符指定成员的地址 声明一个指向成员的指针时,如`char* Window::*pwCaption = &Window::szWinCaption;`,`pwCaption`是一个指向`Window`类中`szWinCaption`字符数组成员的指针。这使得我们能够在程序中通过`(*pwCaption)`访问类实例的`szWinCaption`。 另一方面,`this`指针是一个特殊的隐含指针,它始终指向当前对象,无需显式声明。在成员函数中,`this`提供了对当前对象的引用,无论它是哪个实例。例如,在成员函数`bool SetCaption(const char* szTitle)`中,可以通过`this->szWinCaption`来操作当前对象的`szWinCaption`成员。 使用`this`的一个常见场景是在设置成员变量的值时,如`this->caption = szTitle;`,这里`szTitle`会被复制到`this->caption`所指向的内存位置。注意,`this`也可以作为函数参数传递,但通常用于回调函数或对象自我操作。 理解并掌握如何声明和使用指向成员的指针以及this指针,对于编写高效且灵活的C++代码至关重要,能够帮助我们更好地控制和管理类的内部状态,并提高代码的可读性和可维护性。