如何通过指针的类指针访问类的成员函数?

时间:2014-12-16 19:32:49

标签: c++ pointers

下面是我的C ++代码,我在下面的代码中评论我的问题:

#include <iostream>
using namespace std;

class Base{
public:
    virtual void f1(){
    cout << "f1 from base\n"; }

   virtual void f2(){
   cout << "f2 from base\n";
 }
};

class D1: public Base {
public:
 virtual void f1(){
cout << "f1 from D1\n";
}
};

class D2: public Base {
public:
 virtual void f2(){
cout << "f2 from D2\n";
}
};


int main(){
Base* b1 = new D1;
b1->f1();
b1->f2();

delete b1;

Base* b2 = new D2;
b2->f1();
b2->f2();

Base** ptr = &b2;
// here how to use member function
// of b2


return 0;
}

我想通过f1()指针访问D1类的ptr函数。 我已声明Base**并为其指定了b2。其中b2Base*类的指针。

1 个答案:

答案 0 :(得分:3)

你必须尊重Base**一次,这样你就可以通过指针基类调用该函数。

一种可能的方法是写

(*ptr)->f1();