
如果父类和子类非虚函数名称相同,会发生什么情况?
当我们在子类中覆盖了某个虚函数时,可以再一次使用virtual关键字指出该函数的性质,然而这么做并非必须。
子类如果定义了一个函数与父类中虚函数的名字相同但是形参不同,这仍然是合法行为,但此时使用指向子类对象的父类的指针或引用调用该函数时,会调用父类的虚函数。
还会存在父类非virtual,子类同名函数为virtual,这种情况该如何分析?
向上转型时发生什么?
将子类对象赋值给父类对象,会舍去子类多余的成员。
如果父类和子类非虚函数名称相同,会发生什么情况?
当我们在子类中覆盖了某个虚函数时,可以再一次使用virtual关键字指出该函数的性质,然而这么做并非必须。
子类如果定义了一个函数与父类中虚函数的名字相同但是形参不同,这仍然是合法行为,但此时使用指向子类对象的父类的指针或引用调用该函数时,会调用父类的虚函数。
还会存在父类非virtual,子类同名函数为virtual,这种情况该如何分析?
向上转型时发生什么?
将子类对象赋值给父类对象,会舍去子类多余的成员。