2017-08-06 148 views
1

我在我的一次採訪中被問到了這個問題。 可以說我有基類「A」。有四類「B」,「C」,「D」,「E」是從「A」派生的。現在我有一種在「D」和「E」類中很常見的方法。我可以寫這種方法的最低限度是什麼,只有類「D」和「E」可以使用它們。 如果我將它們寫入基類,那麼無類別的「B」和「C」類將可見。解決方案重複代碼

+0

你可以把它放在包的私人範圍內(以java的方式)。然後將D,E放入同一個包中,將B,C放入不同的包中。也可以引入kinda函數,它是一個獨立的對象,並將其用作D和E類的成員。 – evgenii

回答

0

你得出一箇中間類從一個說叫它爲簡單起見DECommon這將有這個共同的方法DE。接下來從中導出DE

class A { 
} 

class DECommon : public A { 
    public: 
     virtual void newMethodDE() { 
      // DO YOUR MAGIC HERE 
     } 
} 

class D : public DECommon { 
} 

class E : public DECommon { 
} 

因此d和E仍將保留是-一個關係爲A,而新的共同方法邏輯將僅在DECommon中間類一次實現。

+0

太棒了!好的方法... –

+0

很高興你喜歡它,隨時接受答案:) –

相關問題