如何使用指针并调用它指向的类方法?
例如:
Image *img[26];
Image IM = outputImage();
img[0] = &IM;
我想调用img [0]或IM的方法。我试过这样的事情,但收到了错误。
img[0].getPixel(0,1);
错误是“表达式必须具有类类型”
答案 0 :(得分:2)
由于您使用的是指针数组,因此必须将其取消引用为指针。
img[0]->getPixel(0, 1);
而且:
Image IM = outputImage();
应该是:
Image &IM = outputImage();
假设outputImage()
返回引用。
答案 1 :(得分:0)
您可以使用以下两种方法: 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;
}