რამდენი კონსტრუქტორი შეიძლება ჰქონდეს კლასს c-ში?

რამდენი კონსტრუქტორი შეიძლება ჰქონდეს კლასს c-ში?
რამდენი კონსტრუქტორი შეიძლება ჰქონდეს კლასს c-ში?
Anonim

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

რამდენი კონსტრუქტორი შეიძლება არსებობდეს კლასში?

მკაცრად რომ ვთქვათ, JVM classfile ფორმატი ზღუდავს მეთოდების რაოდენობას (მათ შორის ყველა კონსტრუქტორს) კლასისთვის 65536-ზე ნაკლებზე. და ტომ ჰეუტინის მიხედვით, ეფექტური ლიმიტია 65527. თითოეული მეთოდის ხელმოწერა იკავებს ადგილს მუდმივ აუზში.

შეიძლება კლასს ჰქონდეს რამდენიმე კონსტრუქტორი?

კლასში ორი (ან მეტი) კონსტრუქტორის არსებობის ტექნიკა ცნობილია როგორც კონსტრუქტორის გადატვირთვა. კლასს შეიძლება ჰქონდეს მრავალი კონსტრუქტორი, რომლებიც განსხვავდებიან მათი პარამეტრების რაოდენობით და/ან ტიპით. თუმცა, შეუძლებელია, გქონდეს ორი კონსტრუქტორი ზუსტად იგივე პარამეტრებით.

შეგვიძლია გვყავდეს ერთზე მეტი კონსტრუქტორი C კლასში?

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

შეგიძლიათ დარეკოთ კონსტრუქტორი?

კონსტრუქტორის გამოძახება მეთოდიდან

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

გირჩევთ: