#include using namespace std; class TLightSource { private: int lightState; virtual void Light(void) = 0; virtual void Dark (void) = 0; public: TLightSource() {lightState = 0;} void TurnOn (void) { if(!lightState) Light(); lightState = 1;} void TurnOff (void) { if(lightState) Dark(); lightState = 0;} int IsOn(void) {return (lightState != 0);} }; class TTungstenBulb : public TLightSource { private: int LightStrength; virtual void Light(void); virtual void Dark(void); public: TTungstenBulb(){LightStrength=100;} void SetStrength(int s){ if(s<101 && s>-1){LightStrength=s;} } int ShowStrength(void){ return LightStrength; } }; void TTungstenBulb::Light(void) { cout << "Turning this tungsten bulb ON...\n"; } void TTungstenBulb::Dark(void) { cout << "Turning this tungsten bulb OFF...\n"; } int main(void) { TTungstenBulb MyLamp; int i; int t; i=1; while(i>0){ cout << "Current status: " << endl; if(MyLamp.IsOn()){ cout << "The lamp is turned ON ..."<>i; switch(i){ case 1: MyLamp.TurnOn(); break; case 2: MyLamp.TurnOff(); break; case 3: cout << "Sisesta valgustugevus: " << endl; cin >> t; MyLamp.SetStrength(t); break; }; } return 0; }