Печать строки без изменения функции main

Добавьте глобальный объект, конструктор которого печатает сообщение. Его инициализация выполняется до входа в main, поэтому менять тело main не требуется.

Короткий ответ

Что ответить на собеседовании

Добавьте глобальный объект, конструктор которого печатает сообщение. Его инициализация выполняется до входа в main, поэтому менять тело main не требуется.

Подробный разбор

Ответ с пояснениями

Условие

Не изменяя тело функции main, дополните программу так, чтобы при её запуске на экран выводилось сообщение "Hello world".

# include <iostream>

int main() {
    return 0;
}

Ответ

Добавьте глобальный объект, конструктор которого печатает сообщение. Его инициализация выполняется до входа в main, поэтому менять тело main не требуется.

#include <iostream>

struct Greeting {
    Greeting() { std::cout << "Hello world\n"; }
};
Greeting greeting;

int main() {
    return 0;
}

Это демонстрация динамической инициализации объекта со статической длительностью хранения. В обычном приложении явный вызов из main понятнее: побочные эффекты глобальных конструкторов усложняют тестирование, обработку ошибок и порядок зависимостей между единицами трансляции.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее