继承另一个具有相同函数名的抽象类的抽象类
Abstract class inheriting another abstract class with the same function name
class subscriber
{
public:
virtual void update() = 0;
}
class entity : public subsriber
{
public:
virtual void update() = 0;
}
class myObject : public entity
{
public:
virtual void update()
{
do_things();
}
}
subscriber * ptr = new myObject; //will use shared_ptr, but here i want simplicity
ptr->update();
问题是,是否会调用适当的更新函数(在myObject中实现的函数)?在一个"家族"中具有相同名称的2个纯虚函数是否有效?
将适当的更新函数(一个实现在myObject)被调用?
是的,它将被调用。
在一个"家族"中具有相同名称的2个纯虚函数是否有效?
第二个声明(即在entity
类中)没有将第二个纯虚函数引入到该类中:签名是相同的,因此update()
是单个虚函数。而且,没有必要第二次声明它:entity
仍然是抽象的,即使您删除了第二次声明,也可以访问update()
方法。
虚函数或虚方法是指其行为可以在继承类中被具有相同签名的函数重写的函数或方法。
所以答案是是
相关文章:
- 有没有办法按值将纯抽象类的所有子类传递给 C++ 中的函数?
- 将自定义函数传递到基抽象类中以延迟执行
- C ++如何在原始抽象类中创建一个函数,该函数接受派生类的输入
- 从抽象类继承以创建另一个抽象类时,我应该重新声明所有虚函数吗?
- 如何将子类作为函数的参数传递给期望基类,然后将该对象传递到指向这些抽象类对象的指针向量中?
- 抽象类和构造函数
- C++ 将一组对象传递给抽象类的成员函数
- 抽象类析构函数与继承"Shutdown"函数
- 尝试在 std::map 中插入抽象类时没有用于调用的匹配函数
- C++的抽象类继承和构造函数的问题
- C++ abort() 在函数内的抽象类对象指针调用上
- 具有继承类和函数的抽象类写入单独的向量c++
- C++ 抽象类构造函数调用
- 为什么不能将std :: async用于接收对抽象类作为参数的函数
- 抽象类和虚拟构造函数的替代方案
- 抽象类的复制构造函数中的问题
- C++ 接受对抽象类的常量引用的构造函数无法初始化 std::map
- 抽象类对象和纯虚拟析构函数
- 抽象类/函数的编译错误
- 在派生类中为抽象类函数传递附加参数