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中實現的函數)?在一個「家庭」中有兩個具有相同名稱的純虛函數是否有效?抽象類繼承具有相同函數名稱的另一個抽象類
你爲什麼要這樣做?當然,只有一種抽象方法可以做到這一點。 – antonijn
@Antonie Blom我有發佈/訂閱模式,每個實體都是訂戶。有2個函數,因爲存在從存儲已發佈消息(如果有新消息)的對象調用(使用訂閱者*)的更新,並且從實體管理器調用更新(使用enity *)。 – user1873947
當你檢查你的編譯器的行爲時發生了什麼?應該很容易在你的編譯器上檢查這種行爲,不是嗎? –