#include <iostream> using namespace std; class Driver { public: virtual void run() { cout << "Generic driver running" << endl; } }; class SpiDriver : public Driver { public: void run() override { cout << "SPI driver running" << endl; } }; class I2cDriver : public Driver { public: void run() override { cout << "I2C driver running" << endl; } }; // correct: base class reference void processDriver(Driver& driver) { driver.run(); } int main() { int mode; cin >> mode; SpiDriver spi; I2cDriver i2c; if (mode == 0) { processDriver(spi); } else { processDriver(i2c); } return 0; }
Test Cases
Test Results
Input
0
Expected Output
SPI driver running