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