我在理解这个程序中指针的使用方面遇到了一些麻烦:
#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();办?我的书说它是" 指向成员函数运算符的指针 ",但没有给出任何解释.
很高兴收到任何帮助!
那本书错了,因为它应该是:
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)