Ошибка при использовании #include <iostream> вместо #include <stdafx.h>

211
25 декабря 2017, 13:37

В visual studio C++, при создании нового проекта, вместо #include <iostream> (как в примерах) стоит #include <stdafx.h>. Если его заменить на #include <iostream>, то получается ошибка компиляции.

Можно это как-то изменить?

Answer 1

Это особенность Visual Studio, которая может ускорять сборку проекта. Начинающих только сбивает с толку. Рекомендую её просто отключить, только и всего. Тогда все будет работать как по учебнику.

Для этого зайдите в свойства проекта (правая кнопка по проекту в solution explorer, properties) и в Precompiled Headers отключите их как показано на рисунке:

Answer 2

Visual Studio использует #include <stdafx.h> для реализации предкомпилированных заголовков — то есть, для ускорения компиляции. #include <stdafx.h> должно быть первой существенной строкой файла (то есть, непустой и не комментарием).

Если вам нужно указать #include <iostream>, укажите его следующей строкой.

Я бы не рекомендовал отказываться от #include <stdafx.h> и предкомпилированных заголовков. Правильное использование предкомпилированных заголовков улучшает время компиляции, особенно в больших проектах.

READ ALSO
Перегрузка дружественной функции

Перегрузка дружественной функции

Задание: Создать класс целых чисел IntegerОпределить перегруженную функцию, воз-вращающую максимальное из двух аргументов

232
Как в c++ инкапсулировать объекты?

Как в c++ инкапсулировать объекты?

Что такое инкапсуляция? Как она работает? С какой целью она делается? Покажите на конкретных примерах что из этого в результате получается

211
C++. Компилятор не распознает FindNextFile

C++. Компилятор не распознает FindNextFile

Пишу функцию которая выводит список файлов на экранИспользую функции FindFirstFile & FindNextFile

233
Как найти виджет(-ы), лежащие на QGridLayout

Как найти виджет(-ы), лежащие на QGridLayout

Вопрос в заголовкеПытался сделать так

223