【发布时间】:2019-09-17 07:33:37
【问题描述】:
我有一个父类和几个子类。 我想要一个父实例并根据特定的 ID 对其进行实例化。 子类可能具有父类中没有的函数,而我似乎无法访问它们。
class ParentInterface {
public:
int gettemp();
};
class child1: public ParentInterface{
public:
child1();
virtual ~child1();
int gettemp();
int getrand();
};
class child2: public ParentInterface{
public:
child2();
virtual ~child2();
int gettemp();
};
主要我想如下使用:
int main(int argc, char** argv) {
int id = 1;
ParentInterface *c;
if(id == 1) c = new child1();
if(id == 2) c = new child2();
cout << "print temp: " << c->gettemp() << endl;
cout << "print rand: " << c->getrand() << endl;
}
我无法从第一个孩子访问 getrand() 函数。我知道 c 被声明为父类,但是有没有办法解决这个问题而不必将 getrand() 函数添加到父类?
【问题讨论】: