আমার প্রাথমিক বোঝাপড়াটি হ'ল খাঁটি ভার্চুয়াল ফাংশনের জন্য কোনও বাস্তবায়ন নেই, তবে আমাকে বলা হয়েছিল যে খাঁটি ভার্চুয়াল ফাংশনের বাস্তবায়ন থাকতে পারে। class A { public: virtual void f() = 0; }; void A::f() { cout<<"Test"<<endl; } উপরে কোড ঠিক আছে? এটি বাস্তবায়নের সাথে খাঁটি ভার্চুয়াল ফাংশন করার উদ্দেশ্য কী?
আমি ভার্চুয়াল ডেস্ট্রাক্টরের প্রয়োজনীয়তা বুঝতে পারি। তবে কেন আমাদের খাঁটি ভার্চুয়াল ডেস্ট্রাক্টর দরকার? সি +++ এর একটি নিবন্ধে লেখক উল্লেখ করেছেন যে আমরা যখন ক্লাস বিমূর্ত করতে চাই তখন আমরা খাঁটি ভার্চুয়াল ডেস্ট্রাক্টর ব্যবহার করি। তবে আমরা যে কোনও সদস্যকে শুদ্ধ ভার্চুয়াল হিসাবে ফাংশন তৈরি করে একটি শ্রেণি বিমূর্ত করতে …
আমরা সর্বদা খাঁটি ভার্চুয়াল ফাংশন হিসাবে ঘোষণা করি: virtual void fun () = 0 ; অর্থাৎ এটি সর্বদা 0 তে নির্ধারিত হয়। আমি যা বুঝি তা হ'ল এই ফাংশনটির জন্য এনটিএলএল এবং অন্য যে কোনও মান এখানে একটি সংকলন সময় ত্রুটির ফলস্বরূপ vtable এন্ট্রি আরম্ভ করা। এই বোঝাপড়াটি সঠিক নাকি …
আমি মাঝে মাঝে এমন প্রোগ্রামগুলি লক্ষ্য করি যা আমার কম্পিউটারে ত্রুটির সাথে ক্রাশ হয়: "খাঁটি ভার্চুয়াল ফাংশন কল"। এই বিষয়গুলি কীভাবে সংকলন করতে পারে যখন কোনও বস্তু একটি বিমূর্ত শ্রেণীর তৈরি করা যায় না?