შეიძლება თუ არა საბაზისო კლასის კერძო წევრები მემკვიდრეობითი იყოს?

შეიძლება თუ არა საბაზისო კლასის კერძო წევრები მემკვიდრეობითი იყოს?
შეიძლება თუ არა საბაზისო კლასის კერძო წევრები მემკვიდრეობითი იყოს?
Anonim

საბაზისო კლასის პირადი წევრები ყოველთვის მემკვიდრეობით იღებენ წარმოებულ კლასს C++-ში? მე ყველგან ვხედავდი, რომ საბაზისო კლასის პირადი წევრები არასოდეს მიიღებენ მემკვიდრეობით წარმოებულ კლასში, მიუხედავად იმისა, თუ როგორ მემკვიდრეობით მიიღებთ საბაზისო კლასს (პირადი ან დაცული თუ საჯარო).

შეიძლება თუ არა კერძო კლასის წევრი მემკვიდრეობით?

პირადი წევრები სუპერკლასში

ქვეკლასი არ მემკვიდრეობს მისი მთავარი კლასის კერძო წევრებს. თუმცა, თუ სუპერკლასს აქვს საჯარო ან დაცული მეთოდები მის პირად ველებზე წვდომისთვის, მათი გამოყენება შეიძლება ქვეკლასმაც.

როგორ იღებთ მემკვიდრეობით საბაზისო კლასის კერძო წევრებს C++-ში?

პირადი მემკვიდრეობით, საბაზისო კლასის საჯარო და დაცული წევრი ხდება მიღებული კლასის კერძო წევრები. ეს ნიშნავს, რომ საბაზო კლასის მეთოდები არ გახდება მიღებული ობიექტის საჯარო ინტერფეისი. თუმცა, მათი გამოყენება შესაძლებელია მიღებული კლასის წევრი ფუნქციების შიგნით.

რა განსხვავებაა კერძო და დაცულ მემკვიდრეობას შორის?

დაცული მემკვიდრეობა ხდის საბაზისო კლასის საჯარო და დაცულ წევრებს, რომლებიც დაცულია მიღებული კლასში. კერძო მემკვიდრეობა ხდის საბაზისო კლასის საჯარო და დაცულ წევრებს მიღებულ კლასში კერძო.

როდესაც მემკვიდრეობა კერძოა, საბაზისო კლასში კერძო მეთოდია?

როდესაც მემკვიდრეობა კერძოა, კერძო მეთოდები ბაზაშიაკლასი არის მიუწვდომელი გამოყვანილ კლასში (C++-ში). მემკვიდრეობის შესახებ დამატებითი ინფორმაციისთვის იხილეთ: მემკვიდრეობა C++-ში ვარიანტი (A) სწორია.

გირჩევთ: