使用基类中的派生函数

时间:2014-05-12 06:09:13

标签: c++ class object inheritance

我有一个类test_d,它公开继承了类test_b。类test_d有一个函数getValues(),我需要使用类test_b的对象调用它。我尝试使用dynamic_castreinterpret_cast,但它没有用。还有其他办法吗?

class test_b {
// this is the base class
};

class test_d : public test_b {
// this is the derived class

public int getValues() const; // this is the function I need to use.
};

test_b* objB = new test_d;
dynamic_cast<test_d*>(objB)->getValues(); // this is what I am doing.

1 个答案:

答案 0 :(得分:2)

在你的界面中,你应该将你的方法声明为纯虚函数,然后在派生类中你应该编写一个实现

class test_b 
{
public:
    virtual int getValues() const = 0;
};

class test_d : public test_b 
{
public:
    virtual int getValues() const
    {
        return m_value;
    }
};

来自main()的某个地方:

test_b* objB = new test_d;
objB->getValues();

这是OOP的基础:接口和接口的实现