use*_*947 4 c++ virtual inheritance class abstract
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();
Run Code Online (Sandbox Code Playgroud)
问题是,是否会调用正确的更新函数(在myObject中实现的函数)?在一个"系列"中有两个具有相同名称的纯虚函数是否有效?
是否会调用正确的更新函数(在myObject中实现的函数)?
是的,它会被调用.
在一个"系列"中有2个具有相同名称的纯虚函数是否有效?
第二个声明(即在entity
类中)不会在系列中引入第二个纯虚函数:签名是相同的,因此update()
是单个虚函数.此外,第二次声明它是没有必要的:entity
将保持抽象,并且update()
即使您删除了第二个声明也可以访问该方法.
归档时间: |
|
查看次数: |
4251 次 |
最近记录: |