C এ একটি ক্লাসে কতজন কনস্ট্রাক্টর থাকতে পারে?

সুচিপত্র:

C এ একটি ক্লাসে কতজন কনস্ট্রাক্টর থাকতে পারে?
C এ একটি ক্লাসে কতজন কনস্ট্রাক্টর থাকতে পারে?
Anonim

এখানে একটি ক্লাসে একাধিক কনস্ট্রাক্টর সংজ্ঞায়িত হতে পারে। একে বলা হয় ওভারলোডিং কনস্ট্রাক্টর। উপরে ওয়ার্ল্ড কনস্ট্রাক্টরের মতো সাধারণত একটি কনস্ট্রাক্টর থাকে যার কোন প্যারামিটার নেই (কন্সট্রাক্টরের নাম অনুসরণ করে বন্ধনীর ভিতরে কিছুই নেই)। একে নো-আর্গুমেন্ট কনস্ট্রাক্টরও বলা হয়।

একটি ক্লাসে কতজন কনস্ট্রাক্টর থাকতে পারে?

কঠোরভাবে বলতে গেলে, JVM ক্লাসফাইল ফর্ম্যাট একটি ক্লাসের জন্য পদ্ধতির সংখ্যা (সমস্ত কনস্ট্রাক্টর সহ) 65536-এর কম সীমাবদ্ধ করে। এবং টম হাউটিনের মতে, কার্যকর সীমা হল 65527প্রতিটি পদ্ধতির স্বাক্ষর ধ্রুবক পুলে একটি স্লট দখল করে৷

একটি ক্লাসে কি একাধিক কনস্ট্রাক্টর থাকতে পারে?

একটি ক্লাসে দুই (বা তার বেশি) কনস্ট্রাক্টর থাকার কৌশলটি কনস্ট্রাক্টর ওভারলোডিং নামে পরিচিত। একটি ক্লাসে একাধিক কনস্ট্রাক্টর থাকতে পারে যা তাদের প্যারামিটারের সংখ্যা এবং/অথবা প্রকারের মধ্যে পার্থক্য করে। তবে, একই প্যারামিটার সহ দুটি কনস্ট্রাক্টর থাকা সম্ভব নয়।

আমাদের কি সি-তে একটি ক্লাসে একাধিক কনস্ট্রাক্টর থাকতে পারে?

C++-এ, আমাদের একই নামের একটি ক্লাসে একাধিক কনস্ট্রাক্টর থাকতে পারে, যতক্ষণ না প্রতিটির আর্গুমেন্টের আলাদা তালিকা থাকে। এই ধারণাটি কনস্ট্রাক্টর ওভারলোডিং নামে পরিচিত এবং এটি ফাংশন ওভারলোডিংয়ের মতোই।

আপনি কি কনস্ট্রাক্টরকে কল করতে পারেন?

একটি পদ্ধতি থেকে একজন কনস্ট্রাক্টরকে আহ্বান করা

না, আপনি কোনও কনস্ট্রাক্টরকে কল করতে পারবেন নাএকটি পদ্ধতি থেকে। একমাত্র জায়গা যেখান থেকে আপনি "this" বা, "super" ব্যবহার করে কনস্ট্রাক্টরদের আমন্ত্রণ জানাতে পারেন অন্য কনস্ট্রাক্টরের প্রথম লাইন। আপনি যদি অন্য কোথাও স্পষ্টভাবে কনস্ট্রাক্টরদের আহ্বান করার চেষ্টা করেন, একটি কম্পাইল টাইম ত্রুটি তৈরি হবে।

প্রস্তাবিত: