რა განსხვავებაა ვირტუალურ ფუნქციასა და ფუნქციის გადაფარვას შორის?
რა განსხვავებაა ვირტუალურ ფუნქციასა და ფუნქციის გადაფარვას შორის?

ვიდეო: რა განსხვავებაა ვირტუალურ ფუნქციასა და ფუნქციის გადაფარვას შორის?

ვიდეო: რა განსხვავებაა ვირტუალურ ფუნქციასა და ფუნქციის გადაფარვას შორის?
ვიდეო: Difference between Function Overriding and Function Overloading in C++ -46 2024, მაისი
Anonim

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

გარდა ამისა, რა განსხვავებაა ვირტუალურ ფუნქციასა და სუფთა ვირტუალურ ფუნქციას შორის?

Მთავარი შორის განსხვავება ' ვირტუალური ფუნქცია“და „სუფთა ვირტუალური ფუნქცია "ეს არის" ვირტუალური ფუნქცია - აქვს თავისი განმარტება წელს საბაზო კლასი და ასევე მემკვიდრეობით მიღებული კლასები განაახლებს მას. The სუფთა ვირტუალური ფუნქცია არ აქვს განმარტება წელს საბაზო კლასი და ყველა მემკვიდრეობით მიღებული კლასმა უნდა განაახლოს იგი.

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

ანალოგიურად, ადამიანები კითხულობენ, რატომ ვიყენებთ ვირტუალურ ფუნქციებს?

ვირტუალური ფუნქციები არიან გამოყენებული მხარდასაჭერად "გაშვების დროის პოლიმორფიზმი". Როდესაც ვირტუალური ფუნქცია გამოიძახება Base Class Pointer-ის გამოყენებით, შემდგენელი წყვეტს Runtime-ის რომელი ვერსია ფუნქცია ე.ი. უნდა გამოიძახოს საბაზისო კლასის ვერსია ან გადაჭარბებული წარმოებული კლასის ვერსია. ამას ჰქვია გაშვების დროის პოლიმორფიზმი.

შეგიძლიათ არა-ვირტუალური ფუნქციის უგულებელყოფა C++-ში?

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

გირჩევთ: