C++中有什么指针?

mik*_*azi 4 c++ pointers

我在理解这个程序中指针的使用方面遇到了一些麻烦:

#include<iostream.h>
class ABC
{
    public:
        int data;
        void getdata()
        {
            cout<<"Enter data: ";
            cin>>data;
            cout<<"The number entered is: "<<data;
        }
};
void main()
{
    ABC obj;
    int *p;
    obj.data = 4;
    p = &obj.data;
    cout<<*p;
    ABC *q;
    q = &obj.data;
    q->getdata();
}
Run Code Online (Sandbox Code Playgroud)

我得到了所有的东西,直到下一步:ABC *q;
这是做什么的?我的书说这是一个类型指针(它与可怜的语法非常模糊).但是,这是什么意思?指向ABC类地址的指针?

如果是,那么下一步就会让我感到困惑.q = &obj.data;
所以我们将这个指针指向数据的位置,这是一个变量.那怎么样ABC *q;呢?

最后一步.怎么q->getdata();办?我的书说它是" 指向成员函数运算符指针 ",但没有给出任何解释.

很高兴收到任何帮助!

Dan*_*ara 5

那本书错了,因为它应该是:

ABC *q;
q = &obj;
q->getdata();
Run Code Online (Sandbox Code Playgroud)

或者使用int指针:

ABC *q;
int *qq;
qq = &obj.data;
q = &obj;
q->getdata();
Run Code Online (Sandbox Code Playgroud)