Easyосновы
Чем отличается объявление (declaration) от определения (definition)?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Объявление вводит имя и тип в программу, не выделяя память и не давая тела. Определение фактически создаёт сущность: функция получает тело, переменная — место в памяти.
void foo(); // объявление
extern int x; // объявление
class Widget; // объявление (forward declaration)
void foo() { /*...*/ }// определение
int x = 0; // определение
class Widget { /*...*/ }; // определениеПравило: объявлений может быть сколько угодно, но определение должно быть одно во всей программе (ODR). Заголовки обычно содержат объявления, .cpp — определения.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.