Logo ka.boatexistence.com

გადატვირთული ოპერატორები მემკვიდრეობით მიიღება წარმოებულ კლასში?

Სარჩევი:

გადატვირთული ოპერატორები მემკვიდრეობით მიიღება წარმოებულ კლასში?
გადატვირთული ოპერატორები მემკვიდრეობით მიიღება წარმოებულ კლასში?

ვიდეო: გადატვირთული ოპერატორები მემკვიდრეობით მიიღება წარმოებულ კლასში?

ვიდეო: გადატვირთული ოპერატორები მემკვიდრეობით მიიღება წარმოებულ კლასში?
ვიდეო: C++ Weekly - Ep 225 - Understanding Operator Overloading 2024, მაისი
Anonim

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

გადატვირთვა მოქმედებს მემკვიდრეობით?

მემკვიდრეობის იერარქიაში, სუპერკლასების და ქვეკლასების მეთოდები შეიძლება გადაიწეროს და გადაიტვირთოს. … როდესაც გადატვირთულია, სუპერკლასის და ქვეკლასის მეთოდებს აქვთ იგივე სახელი, მაგრამ პარამეტრების ტიპების განსხვავებული ხელმოწერები. სურათი 2 გვიჩვენებს მეთოდის გადატვირთვას მემკვიდრეობის იერარქიაში.

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

ისევე როგორც C++, არ არის გადატვირთვის გარჩევადობა კლასებს შორის Base-სა და class Derived-ს შორის. C-ში არ არის გადატვირთვა მასშტაბით, მიღებული კლასის ფარგლები არ არის გამონაკლისი ამ ზოგადი წესიდან.

რა არის მემკვიდრეობა გადატვირთვაში?

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

რომელი ოპერატორი არ შეიძლება იყოს მემკვიდრეობით?

- -> მინიჭების ოპერატორი '=' არ არის მემკვიდრეობით მიღებული ქვეკლასით. ვირტუალური მშობელი და ოპერატორი=(მშობელი და პ) // !!!!

გირჩევთ: