278 বার দেখা হয়েছে
"সি++" বিভাগে করেছেন

1 টি উত্তর

0 জনের পছন্দ 0 জনের অপছন্দ
করেছেন

Multiple inheritance হলো একটি বৈশিষ্ট্য যা C++-এ একটি ক্লাসকে একাধিক বেস ক্লাস থেকে প্রোপার্টি এবং আচরণ গ্রহণ করার সুযোগ দেয়। এর মাধ্যমে একটি ডেরাইভড ক্লাস একাধিক বেস ক্লাসের সদস্য অ্যাক্সেস করতে পারে।

উদাহরণ:

    class Animal {
    public:
        void eat() {
            cout << "Animal is eating" << endl;
        }
    };

    class Bird {
    public:
        void fly() {
            cout << "Bird is flying" << endl;
        }
    };

    class Sparrow : public Animal, public Bird {
    public:
        void sound() {
            cout << "Sparrow is chirping" << endl;
        }
    };

    int main() {
        Sparrow s;
        s.eat();   // Animal থেকে ইনহেরিট করা
        s.fly();   // Bird থেকে ইনহেরিট করা
        s.sound(); // নিজস্ব ফাংশন
        return 0;
    }
  </pre>

  ডায়মন্ড প্রোবলেম:
  C++-এ ডায়মন্ড প্রোবলেম ঘটে যখন একটি ক্লাস দুটি ক্লাস থেকে ইনহেরিট করে, এবং উভয় ক্লাসের একটি সাধারণ বেস ক্লাস থাকে, ফলে অস্পষ্টতা সৃষ্টি হয়। এটি ভার্চুয়াল ইনহেরিটেন্স ব্যবহার করে সমাধান করা যায়।

  
    class A {
    public:
        void show() {
            cout << "Class A" << endl;
        }
    };

    class B : public A {
    public:
        void show() {
            cout << "Class B" << endl;
        }
    };

    class C : public A {
    public:
        void show() {
            cout << "Class C" << endl;
        }
    };

    class D : public B, public C {
    public:
        void show() {
            cout << "Class D" << endl;
        }
    };

    int main() {
        D obj;
        obj.show();  // কোন show() ফাংশন কল হবে?
        return 0;
    }
  </pre>

  ডায়মন্ড প্রোবলেম সমাধানে ভার্চুয়াল ইনহেরিটেন্স:
  
    class A {
    public:
        void show() {
            cout << "Class A" << endl;
        }
    };

    class B : virtual public A {
    public:
        void show() {
            cout << "Class B" << endl;
        }
    };

    class C : virtual public A {
    public:
        void show() {
            cout << "Class C" << endl;
        }
    };

    class D : public B, public C {
    public:
        void show() {
            cout << "Class D" << endl;
        }
    };

    int main() {
        D obj;
        obj.show();  // Class D কল হবে
        return 0;
    }
  </pre>

এরকম আরও কিছু প্রশ্ন

1 টি উত্তর

38,264 টি প্রশ্ন

37,835 টি উত্তর

1,845 টি মন্তব্য

3,951 জন সদস্য

Ask Answers সাইটে আপনাকে সুস্বাগতম! এখানে আপনি প্রশ্ন করতে পারবেন এবং অন্যদের প্রশ্নে উত্তর প্রদান করতে পারবেন ৷ আর অনলাইনে বিভিন্ন সমস্যার সমাধানের জন্য উন্মুক্ত তথ্যভাণ্ডার গড়ে তোলার কাজে অবদান রাখতে পারবেন ৷
12 জন অনলাইনে আছেন
0 জন সদস্য, 12 জন অতিথি
আজকে ভিজিট : 7133
গতকাল ভিজিট : 36370
সর্বমোট ভিজিট : 66239192
এখানে প্রকাশিত সকল প্রশ্ন ও উত্তরের দায়ভার কেবল সংশ্লিষ্ট প্রশ্নকর্তা ও উত্তর দানকারীর৷ কোন প্রকার আইনি সমস্যা Ask Answers কর্তৃপক্ষ বহন করবে না৷
...