Multiple Inheritance Ambiguity

#include <iostream>
using namespace std;

class PowerControl {
public:
    void enable() {
        cout << "Power enabled" << endl;
    }
};

class InterruptControl {
public:
    void enable() {
        cout << "Interrupt enabled" << endl;
    }
};

// Multiple inheritance
class SpiDriver : public PowerControl, public InterruptControl {
};

int main() {
    int mode;
    cin >> mode;

    SpiDriver spi;

    // TODO:
    // Fix ambiguity and call correct enable() based on mode
    if (mode==0) spi.PowerControl::enable();
    if (mode==1) spi.InterruptControl::enable();

    return 0;
}

Solving Approach

 

 

 

 

Upvote
Downvote
Loading...

Input

0

Expected Output

Power enabled