如何使用指针并调用它指向的类方法?
例如:
Image *img[26];
Image IM = outputImage();
img[0] = &IM;
我想调用 img[0] 或 IM 的方法。我试过这样的事情,但我收到了错误。
img[0].getPixel(0,1);
错误是“表达式必须具有类类型”
由于您使用的是指针数组,因此您必须将其取消引用为指针。
img[0]->getPixel(0, 1);
和这个:
Image IM = outputImage();
应该:
Image &IM = outputImage();
假设outputImage()
返回一个引用。
您可以使用以下两种方法:1)对成员函数使用->运算符。
#include<iostream>
using namespace std;
class myclass
{
public:
void printHello()
{
cout<<"hello from class"<<endl;
}
};
int main()
{
myclass *s[10];
myclass inst;
s[0]=&inst;
s[0]->printHello();
return 0;
}
2)使用。在取消引用指针之后。
#include<iostream>
using namespace std;
class myclass
{
public:
void printHello()
{
cout<<"hello from class"<<endl;
}
};
int main()
{
myclass *s[10];
myclass inst;
s[0]=&inst;
(*s[0]).printHello();
return 0;
}