在“构造函数”/“析构函数”中,调用虚函数需要通过类命调用“成员函数”
通常和多继承下,对有歧义的函数,需要“类名::函数名 的方式调用,如, 定义与“基类的函数” 同名的函数(特别是'重写')

class Animal
{
public:
 Animal() { ... };
 virtual void Run() { ... }
 virtual void Walk(){ ... }
};
class Dog: public Animal //Dog类,继承Animal类
{
public:
 Dog()
 {
  ...
  Run();       //错误,会调用Animal类的Run()函数
  Dog::Walk(); //正确,指定Dog类的Walk()函数
            ...
       };
       void Run() override { ... } //重写Animal::Run()函数
       void Walk() override { ... } //重写Animal::Walk()函数
};



更多推荐

[C++] 关于 构造函数(construction) 析构函数(destruction)中调用虚函数