覆盖派生类C ++

时间:2015-09-15 02:18:46

标签: c++ inheritance constructor private

假设我有一个来自软件包的类,所以我没有办法改变设计,具有以下形式:

class A
{
public:
  A(int degree) 
  {
    ...
    initialize_points();
    ...
  }
  ...
private:
  ...
  void initialize_points() 
  { 
    int number = 1;
    // proceed to do computations using the number specified above
    ...
  }
  ...
}

除了函数B中指定的A之外,我需要的是让number类与类initialize_points()类似。说,我希望它是34而不是1.

由于缺乏经验,我不太明白如何推导出这样的课程B(我应该这样做,也许最好把它写成一个模仿实施的新课程A?)来自类A以来的函数,我想要覆盖的行为是基类的private成员。

谢谢

1 个答案:

答案 0 :(得分:1)

简短的回答是,这不能用C ++完成。派生类可以覆盖其基类所做的主要机制是虚函数。除非基类定义虚函数,否则在派生类中无法覆盖它。