4

這是++(從cprogramming.com複製)用C虛擬繼承的經典例子:虛擬繼承的其他選擇?

class storable 
{ 
public: 

    storable(const char*); 
    virtual void read(); 
    virtual void write(); 
    virtual ~storable(); 

private: 

    // some data...  
}; 

class transmitter : public virtual storable 
{ 
public: 
    void write(); 
    ... 
}; 

class receiver : public virtual storable 
{ 
public: 
    void read(); 
    ... 
}; 

class radio : public transmitter, public receiver 
{ 
public: 
    ... 
}; 

我以前也使用過這種方法對類似的層次結構,但是,我感興趣的是找出什麼其他選擇呢我們有這個具體的例子。在這種情況下,我們如何取代虛擬繼承?使用某種形式的作文? Mixins

還是虛擬繼承的確是最好的辦法?

+0

我正在就如何更具體地提出建議。在網上搜索過,沒有在這個問題上找到太多。我仍然很想知道更多...... – glampert 2014-08-28 18:29:01

+1

或者,如果你們認爲它可能更適合[programmers.stackexchange](http://programmers.stackexchange.com/)... – glampert 2014-08-28 18:36:01

+1

在網上搜索「鑽石繼承「,你會看到根本原因和幾個解決方案。 – 2014-08-28 18:56:25

回答