天天看點

由C++中的派生類想開去

class Base

 {

     public:

        virtual void func(){cout<<"Base"<<endl;}

 };


 class Derived: Base

 {

    private:

       virtual void func(){cout<<"Derived"<<endl;}

 };


 int main()

 {

     Base *b = new Derived();

     b->func();

 }


實際調用為Derived::func();

請問這種以基類指針通路權限為準的設計有什麼好處,是否破壞了派生類的通路機制? 
http://bbs.csdn.net/topics/210042197                

           學習中想起來自己好像看過這些東西,是以回同學這些東西;

暫且不管其他啊。群裡的那個例子讓我想到有個應用方向。也就是,樓主所說的好處:假如Base下面的每個子類都是不同公司的業務實作。一般甲方公司的架構和架構下面的業務實作有時候會交給其他乙方公司來做,不同乙方公司會按照甲方的架構來具體實作,我們new了哪一個派生類就會去執行個體化哪一個乙方公司,這樣的話以後就會很友善了。一旦有新的乙方公司來做業務實作的時候(架構一般是不會經常變動的),如果代碼寫的好的話,我們隻需要去修改new後面的類名就可以了。想用哪個公司的就用那個公司的。

18:37:52

sunny 2014/8/5 18:37:52

樓主的代碼明顯是學習當中,遇到了非要糾結個半死才痛快。。。一般虛函數直接用來做接口~~哪有這樣的。。。

嗯~忘過路大神多指教。。

轉載于:https://my.oschina.net/sunnyandjj/blog/298323