Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

С++ задача придумать

Арсений Пономорчук Ученик (72), открыт 1 неделю назад
придумайте задачу на С++ для среднего понимания функций или методов
1 ответ
Любопытный исследователь Мастер (1185) 1 неделю назад
Написать класс, олицетворяющий лампу. В нём должна быть приватный статический член типа bool, являющийся состоянием лампы: включено/выключено = true/false, функция button, изменяющая состояние переключателя: true=>false; false=>true. Также должна быть функция print_status, выводящая состояние переключателя: off/on с переносом строки. Конструктор и деструктор сгенерирует компилятор. Написать на C++20.

Решение:
 #include  
using namespace std;
class Lamp { //Лампа
private:
static inline bool status{false};
/*
status:
false - выключено;
true - включено
Примечание:
Поскольку переменная статическая, после уничтожения объекта статус останется таким же.
*/
public:
void button() {status=!status;} //Изменить статус(нажать на выключатель лампы).
void print_status() { //Вывести статус в консоль.
cout<<(status ? "on\n" : "off\n");
}
};
int main() { //Пример использования класса
Lamp* p_lamp1=new Lamp{}; //status=false;
p_lamp1->print_status(); //off
p_lamp1->button(); //status=true
delete p_lamp1;
Lamp* p_lamp2=new Lamp{};
p_lamp2->print_status(); //on
p_lamp2->button(); //status=false
p_lamp2->print_status(); //off
delete p_lamp2;
return 0;
}
Похожие вопросы