আপনি কোন ভাষা নির্দিষ্ট করেন নি।
সি ++ এ কোনও ভার্চুয়াল ফাংশন কল করার সময় একজন কনস্ট্রাক্টরকে অবশ্যই সতর্ক থাকতে হবে, এতে যে প্রকৃত ফাংশনটি এটি কল করছে তা শ্রেণি বাস্তবায়ন। যদি এটি প্রয়োগ না করে খাঁটি ভার্চুয়াল পদ্ধতি হয় তবে এটি অ্যাক্সেস লঙ্ঘন হবে।
একজন কনস্ট্রাক্টর নন-ভার্চুয়াল ফাংশনগুলি কল করতে পারে।
আপনার ভাষা যদি জাভা হয় যেখানে ফাংশনগুলি সাধারণত ডিফল্টরূপে ভার্চুয়াল হয় তবে বোঝা যায় যে আপনাকে অতিরিক্ত সতর্কতা অবলম্বন করতে হবে।
সি # পরিস্থিতিটি আপনি যেভাবে প্রত্যাশা করবেন তা হ্যান্ডেল করে বলে মনে হচ্ছে: আপনি নির্মাতাদের মধ্যে ভার্চুয়াল পদ্ধতিগুলি কল করতে পারেন এবং এটি চূড়ান্ত সংস্করণকে কল করে। সুতরাং সি # এ কোনও বিরোধী-নিদর্শন নয়।
কনস্ট্রাক্টরদের কাছ থেকে পদ্ধতি কল করার সাধারণ কারণ হ'ল আপনার কাছে একাধিক কনস্ট্রাক্টর রয়েছে যা একটি সাধারণ "init" পদ্ধতি কল করতে চান।
নোট করুন যে ডেস্ট্রাক্টরগুলির ভার্চুয়াল পদ্ধতিগুলির সাথে একই সমস্যা থাকবে, সুতরাং আপনার ভার্চুয়াল "ক্লিনআপ" পদ্ধতিটি আপনার ডিস্ট্রাক্টরের বাইরে বসে থাকতে পারে না এবং এটি বেস-শ্রেণীর ডেস্ট্রাক্টর দ্বারা ডাকার আশা করতে পারে।
জাভা এবং সি # এর ডেস্ট্রাক্টর নেই, তাদের ফাইনালাইজার রয়েছে। জাভা নিয়ে আচরণ জানি না।
সি # এই ক্ষেত্রে সঠিকভাবে সাফ আপ পরিচালনা করতে উপস্থিত হবে।
(দ্রষ্টব্য যে জাভা এবং সি # তে আবর্জনা সংগ্রহ করা থাকলেও এটি কেবল মেমরির বরাদ্দকে পরিচালনা করে There এমন আরও একটি ক্লিন-আপ রয়েছে যা আপনার ধ্বংসকারীকে মেমরি ছেড়ে দেয় না এমনটি করা দরকার)।