#include <iostream>
using namespace std;
// TODO 1: Create BaseDriver class
class BaseDriver{
public:
void initBase()
{
cout<<"Base driver init start"<<endl;
cout<<"Base driver init complete";
}
};
// - Add function initBase()
// - Prints base initialization messages
// TODO 2: Create SpiDriver class
class SpiDriver:public BaseDriver
{
public:
void initSpi()
{
initBase();
cout<<endl;
cout<<"SPI driver initialized";
}
};
// - Inherits publicly from BaseDriver
// - Add function initSpi()
// - Calls initBase()
// - Prints "SPI driver initialized"
// TODO 3: Create I2cDriver class
class I2cDriver:public BaseDriver
{
public:
void initI2c()
{
initBase();
cout<<endl;
cout<<"I2C driver initialized";
}
};
// - Inherits publicly from BaseDriver
// - Add function initI2c()
// - Calls initBase()
// - Prints "I2C driver initialized"
int main() {
int mode;
cin >> mode;
// TODO 4: If mode == 0, create SpiDriver and call initSpi()
if( mode == 0)
{
SpiDriver s;
s.initSpi();
}
// TODO 5: If mode == 1, create I2cDriver and call initI2c()
else{
I2cDriver i;
i.initI2c();
}
return 0;
}
Expected Output
Base driver init start Base driver init complete SPI driver initialized