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

Помогите с задачей по С++

Cкрпрлесго Скрпрлесгов Ученик (31), на голосовании 5 месяцев назад
Реализуйте класс приложения (Application). Примените паттерн Singleton
Голосование за лучший ответ
Татьяна Просветленный (36384) 6 месяцев назад
 #include  

class Application {
public:
// Метод для получения единственного экземпляра класса
static Application& getInstance() {
static Application instance; // Единственный экземпляр класса
return instance;
}

// Удаляем методы копирования и присваивания для предотвращения создания копий
Application(const Application&) = delete;
Application& operator=(const Application&) = delete;

// Пример метода класса
void run() {
std::cout << "Application is running!" << std::endl;
}

private:
// Приватный конструктор для предотвращения создания экземпляров класса извне
Application() {
std::cout << "Application instance created!" << std::endl;
}
};

int main() {
// Получение единственного экземпляра класса Application
Application& app = Application::getInstance();
app.run();

return 0;
}
Объяснение кода:
Метод getInstance(): Этот метод статический и обеспечивает доступ к единственному экземпляру класса. Внутри метода используется статическая локальная переменная instance, которая инициализируется при первом вызове функции и гарантирует, что объект будет создан только один раз.

Удаление методов копирования и присваивания: Чтобы предотвратить создание копий Singleton, мы удаляем конструктор копирования и оператор присваивания.

Приватный конструктор: Конструктор класса Application сделан приватным, чтобы предотвратить создание экземпляров класса за пределами метода getInstance.

Пример метода run(): Это просто пример метода, который можно вызвать у экземпляра класса.

main() функция: Демонстрация использования класса Application через его Singleton-реализацию.
Похожие вопросы