0

如何使用指针并调用它指向的类方法?

例如:

Image *img[26];

Image IM = outputImage();
img[0] = &IM;

我想调用 img[0] 或 IM 的方法。我试过这样的事情,但我收到了错误。

img[0].getPixel(0,1);

错误是“表达式必须具有类类型”

4

2 回答 2

2

由于您使用的是指针数组,因此您必须将其取消引用为指针。

 img[0]->getPixel(0, 1);

和这个:

 Image IM = outputImage();

应该:

 Image &IM = outputImage();

假设outputImage()返回一个引用。

于 2013-07-15T11:02:23.107 回答
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;
}
于 2013-07-15T12:47:16.060 回答