C++编程指向成员的指针以及this指针的基本使用指南

2020-01-06 14:28:00王旭
易采站长站为您分析C++编程指向成员的指针以及this指针的基本使用指南,与C语言一样,存储的数值被解释成为内存里的一个地址,需要的朋友可以参考下  

指向成员的指针
指向成员的指针的声明是指针声明的特例。使用以下序列来声明它们:


[storage-class-specifiers] [cv-qualifiers] type-specifiers [ms-modifier]
qualified-name ::* [cv-qualifiers] identifier
[= & qualified-name :: member-name];

声明说明符:

  • 可选存储类说明符。
  • 可选 const 和/或 volatile 说明符。
  • 类型说明符:类型的名称。这是要指向的成员的类型,而不是类。

    声明符:

    • 可选的 Microsoft 专用修饰符。
    • 包含要指向的成员的类的限定名。
    • :: 运算符。
    • * 运算符。
    • 可选 const 和/或 volatile 说明符。
    • 命名指向成员的指针的标识符。

      可选的初始值设定项:

      • = 运算符。
      • & 运算符。
      • 类的限定名。
      • :: 运算符。
      • 适当类型的类的非静态成员的名称。

        像往常一样,允许在单个声明中使用多个声明符(以及任何关联的初始值设定项)。
        指向类的成员的指针与普通指针不同,因为它有该成员的类型的类型信息和该成员所属的类的类型信息。常规指针只标识内存中的一个对象或只具有其地址。指向类的某个成员的指针标识类的所有实例中的该成员。以下示例声明类、Window 和一些指向成员数据的指针。

        
        // pointers_to_members1.cpp
        class Window
        {
        public:
         Window();        // Default constructor.
         Window( int x1, int y1,     // Constructor specifying
         int x2, int y2 );      // window size.
        bool SetCaption( const char *szTitle ); // Set window caption.
         const char *GetCaption();    // Get window caption.
         char *szWinCaption;      // Window caption.
        };
        
        // Declare a pointer to the data member szWinCaption.
        char * Window::* pwCaption = &Window::szWinCaption;
        int main()
        {
        }