当存储在指针数组中时,如何调用类及其方法

时间:2013-07-15 11:00:18

标签: c++ pointers methods call

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

例如:

Image *img[26];

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

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

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

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

2 个答案:

答案 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;
}