Virtual Public Inheritance

#include <iostream>
using namespace std;

class Device {
public:
    void show(){cout<<"Generic Device\n";}
};

class Sensor : virtual public Device {};

class Actuator : virtual public Device {};

class SmartDevice: public Sensor, public Actuator{
public:
    void identify(){cout<<"Smart Device\n";}
};


int main() {
    SmartDevice sd;
    sd.show();      // from Device
    sd.identify();  // from SmartDevice
    return 0;
}
Upvote
Downvote
Loading...

Input

Expected Output

Generic Device Smart Device