'ভার্চুয়াল শূন্যস্থান ফু () = 0;' সিনট্যাক্সের অর্থ এই নয় যে আপনি বর্তমান শ্রেণিতে ফু () প্রয়োগ করতে পারবেন না, আপনি পারেন can এর অর্থ এই নয় যে আপনি অবশ্যই এটি উদ্ভূত শ্রেণিতে প্রয়োগ করতে পারেন । আমাকে চড় মারার আগে আসুন ডায়মন্ড সমস্যাটি পর্যবেক্ষণ করুন: (অন্তর্ভুক্ত কোড, মনে রাখবেন)।
class A
{
public:
virtual void foo()=0;
virtual void bar();
}
class B : public virtual A
{
public:
void foo() { bar(); }
}
class C : public virtual A
{
public:
void bar();
}
class D : public B, public C
{}
int main(int argc, const char* argv[])
{
A* obj = new D();
**obj->foo();**
return 0;
}
এখন, আপত্তি-> ফু () অনুরোধের ফলাফল বি :: ফু () এবং তারপরে সি :: বার () এ পাবে।
আপনি দেখুন ... খাঁটি ভার্চুয়াল পদ্ধতিগুলি ডেরিভড ক্লাসগুলিতে প্রয়োগ করতে হবে না (foo () ক্লাস সি তে কোনও প্রয়োগ নেই - সংকলক সংকলন করবে) সি ++ এ প্রচুর ফাঁক রয়েছে।
আশা করি আমি সাহায্য করতে পারি :-)
deported
। (হয় .inl বা .cpp এ সাধারণ ফাইল-নামকরণের অনুশীলনগুলি উল্লেখ করে)।