Thread overview
C++ ta kalıtım
Feb 19, 2018
hsencan
Feb 20, 2018
cos00kun
Mar 07, 2018
Salih Dinçer
February 19, 2018

Merhaba,

Kalıtım konusunu biliyorum. Fakat C++'ta diğer dillerde olmayan private,protected şeklinde miras alma türleri var. Ben hep public kullandım ve açıkçası public dışında kullanan da görmedim. Private veya Protected
ile kalıtım yapmanın public den farkı nedir ?

Teşekkürler

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 19, 2018
// Alt1'i kullanabilen herkes Ust'ü kullanabilir
class Alt1 : public Ust {}

// Yalnızca Alt2'nin altındaki (ve onların altındaki) sınıflar Ust'ü kullanabilir
class Alt2 : protected Ust {}

// Yalnızca Alt3 Ust'ü kullanabilir
class Alt3 : private Ust {}

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

February 20, 2018

6 satır ile çok önemli bir konu ancak bu kadar güzel anlatılabilirdi .. Ellerine sağlık ali hocam :-)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 07, 2018

Alıntı (acehreli:1519064116):

>
> // Yalnızca Alt3 Ust'ü kullanabilir
> ```

>
Bunu demekle,  işlevin sadece kendi kendini çağırabileceği anlamı mı çıkarmalıyız?

-- 
[ Bu gönderi, <http://ddili.org/forum>'dan dönüştürülmüştür. ]
March 07, 2018

Ust'un private üyelerini kullanamaz çünkü onlar yalnızca Ust'ün kendisine açık.

Alt3, Ust'un şu üyelerini kullanabilir:

  • public: çünkü zaten herkese açık
  • protected: çünkü Ust'ün alt sınıfıdır

Alt3'ün kullanıcıları Alt3 nesnelerini Ust olarak kullanamazlar. Yani, başlık dosyasında Ust'ten türetildiğini görürler ama Ust yoluyla gelen üyelere erişemezler.

Alt3'ten türetilen sınıflar Ust'ü kullanamazlar. (Ama tabii çoklu kalıtım yoluyla kendileri de Ust'ten türetilmişlerse o ek kalıtım yoluyla edindikleri Ust kopyalarını kullanabilirler ama "baklava dilimi sıradüzeni" (diamond hierarchy) durumudur ve içinden çıkılması güç bir durumdur. D de Java vs. gibi bu yüzden çoklu kalıtımı desteklemez.)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]