মিঃ লিডস্ট্রাম এবং আমার একটি যুক্তি ছিল :)
মিঃ লিডস্ট্রমের দাবী একটি কনস্ট্রাক্টের shared_ptr<Base> p(new Derived);
জন্য ভার্চুয়াল ডেস্ট্রাক্টর থাকতে বেসের প্রয়োজন হয় না:
আর্মেন সিরুনিয়ান : "সত্যিই? শেয়ার্ড_প্টার কি সঠিকভাবে পরিষ্কার হয়ে যাবে? আপনি কি এই ক্ষেত্রে কীভাবে এই প্রভাবটি কার্যকর করতে পারবেন তা প্রদর্শন করতে পারেন?"
ড্যানিয়েল লিডস্ট্রোম : " শেয়ারড_প্টর কংক্রিটের উদাহরণটি মুছতে তার নিজস্ব ডেস্ট্রাক্টর ব্যবহার করে This এটি সি ++ সম্প্রদায়ের মধ্যে আরআইআই নামে পরিচিত My সমস্ত পরিস্থিতিতে RAII। "
আর্মেন তিরুনিয়ান : "আমি আরআইআই সম্পর্কে জানি, এবং আমি আরও জানি যে অবশেষে ভাগ করা_পিটার ডেস্ট্রাক্টর পিএন 0 এ পৌঁছালে সঞ্চিত px মুছে ফেলতে পারে তবে পিএক্স যদি স্ট্যাটিক টাইপ পয়েন্টার
Base
এবং ডায়নামিক টাইপ পয়েন্টার থাকেDerived
তবে যদিBase
ভার্চুয়াল ডেস্ট্রাক্টর না থাকে এটি অপরিবর্তিত আচরণের ফলাফল হবে I আমি ভুল হলে আমাকে সংশোধন করুন ""ড্যানিয়েল লিডস্ট্রোম : " শেয়ার্ড_পটার স্ট্যাটিক টাইপটি কংক্রিটের বিষয়টি জানে knows আমি এটি এটির নির্মাতায় পাস করার পর থেকে এটি জানে! কিছুটা যাদু বলে মনে হয় তবে আমি আপনাকে নিশ্চিত করতে পারি যে এটি নকশা এবং অত্যন্ত সুন্দর।"
সুতরাং, আমাদের বিচার করুন। ভার্চুয়াল ডেস্ট্রাক্টর পলিমারফিক ক্লাস প্রয়োজন না করে শেয়ারড_পিটার বাস্তবায়ন কীভাবে সম্ভব (যদি তা হয়) ? আগাম ধন্যবাদ