Вопрос задан 02.07.2023 в 13:00. Предмет Информатика. Спрашивает Тюменцев Кирилл.

С++, работа с классами 1. Создать класс согласно варианту. 2. Добавить в класс поля, в том числе,

указанные в варианте. 3. Добавить в класс конструктор по умолчанию (без параметров), конструктор копирования, конструктор для инициализации всех полей, возможно конструкторы преобразования, если необходимо – деструктор. 4. Добавить методы класса, в том числе согласно варианту. 5. Скрыть (защитить) все поля и методы, кроме необходимых для работы. 6. Продемонстрировать работу класса. сам вариант: класс- Building поля- char* address; int storeyCount; адрес- addStoreys(int count);//добавить этажей quarantine(); //закрыть на карантин
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Ольховик Станіслав.

#include <iostream>

using namespace std;

class Building {

private:

 string adress_m;

 int storeyCount_m;

 bool quarantine_m;

public:

 Building(string adress = "", int count = -1) {

  adress_m = adress;

  storeyCount_m = count;

 }

 void addStoreys(int count) {

  storeyCount_m += count;

 }

 void quarantineOn() {

  cout << "Quarantine: on";

  cout << endl;

  quarantine_m = 1;

 }

 void quarantineOff() {

  cout << "Quarantine: off";

  cout << endl;

  quarantine_m = 0;

 }

 void quarantineCheck() {

  cout << "Quarantine: ";

  if(quarantine_m) {

   cout << "on";

   cout << endl;

  } else {

   cout << "off";

   cout << endl;

  }

 }

 string getAdress() {

  return adress_m;

 }

 int getStorey() {

  return storeyCount_m;

 }

};

int main() {

Building build("dirt house", 1);

cout << build.getAdress() << " " << build.getStorey() << " storeys" << " " << endl;

build.quarantineCheck();

build.quarantineOn();

build.addStoreys(2);

cout << build.getAdress() << " " << build.getStorey() << " storeys" << " " << endl;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ниже представлен пример класса Building на языке C++ с реализацией указанных методов и полей:

cpp
#include <iostream> #include <cstring> class Building { private: char* address; int storeyCount; public: Building() : address(nullptr), storeyCount(0) {} Building(const char* addr, int storeys) : address(nullptr), storeyCount(storeys) { setAddress(addr); } Building(const Building& other) : address(nullptr), storeyCount(other.storeyCount) { setAddress(other.address); } ~Building() { delete[] address; } void addStoreys(int count) { if (count > 0) { storeyCount += count; std::cout << "Added " << count << " storeys to the building." << std::endl; } } void quarantine() { std::cout << "The building is now under quarantine." << std::endl; } const char* getAddress() const { return address; } int getStoreyCount() const { return storeyCount; } private: void setAddress(const char* addr) { if (addr != nullptr) { delete[] address; address = new char[std::strlen(addr) + 1]; std::strcpy(address, addr); } } }; int main() { Building building1("123 Main Street", 5); std::cout << "Address: " << building1.getAddress() << std::endl; std::cout << "Storey count: " << building1.getStoreyCount() << std::endl; Building building2(building1); std::cout << "Address (copy): " << building2.getAddress() << std::endl; std::cout << "Storey count (copy): " << building2.getStoreyCount() << std::endl; building2.addStoreys(3); std::cout << "Storey count (after adding): " << building2.getStoreyCount() << std::endl; building2.quarantine(); return 0; }

В данном примере класс Building имеет приватные поля address (адрес здания) и storeyCount (количество этажей).

Класс содержит публичные методы:

  • Конструктор по умолчанию Building(), который инициализирует поля значениями по умолчанию.
  • Конструктор для инициализации полей Building(const char* addr, int storeys), который принимает адрес здания и количество этажей в качестве аргументов.
  • Конструктор копирования Building(const Building& other), который создает копию существующего объекта класса.
  • Деструктор ~Building(), который освобождает память, выделенную для поля address.
  • Метод addStoreys(int count), который добавляет указанное количество этажей к текущему количеству этажей здания.
  • Метод quarantine(), который выводит сообщение о том, что здание находится на карантине.
  • Методы getAddress() и getStoreyCount(), которые возвраща
0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос