当前位置:  开发笔记 > 编程语言 > 正文

调用基类中定义的函数

如何解决《调用基类中定义的函数》经验,为你挑选了1个好方法。

我有两个简单的c ++类:

class base {
protected:
  double a ;
public:
  double getValue(void) { return a ; }
  double getValue2(void) { return 2*this->getValue() ; }
} // end class base

class derived : public base {
private:
  double b ;
public:
  double getValue(void) { return a+b ; }
}  // end class derived

然后我打电话

  derived A ;
  A.getValue2() ;

问题是,该方法从基类(而不是派生类)getValue2()调用该方法getValue().是否可以从派生类中调用getValue2()函数getValue(),还是需要getValue2()在派生类中重新定义?



1> Bathsheba..:

您需要做的就是getValue virtual在基类中创建:

virtual double getValue(void) { return a ; }

那个函数将virtual通过整个类结构(不需要在子类中重复关键字,尽管有些人为了清晰起见而这样做).

与Java不同,virtual-ness不是自动的.


我建议在派生方法中使用**override**关键字.
推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有