|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.04.2011, 20:58 | #1 |
Пользователь
Регистрация: 23.10.2010
Сообщений: 17
|
Заголовочные файлы. Модули. MS VC++
В .cpp содержащем main пишется #include "stdafx.h"
В stdafx.h содержится: Код:
На сколько я понял, если я создаю отдельный модуль с классом, который будет использовать моя программа, надо в MyClass.h поместить описание класса и запрет повторного включения: Код:
Вопросы. 1. зачем нужен stdafx.h, если можно включить файлы непосредственно? 1.1 Надо ли остальные используемые файлы, например, тот же iostream включать в stdafx'е, а не в основном модуле? 2. Зачем нужен stdafx.cpp? 3. Надо ли в MyClass.сpp писать #include "stdafx.h"? 4. Надо ли в MyClass.сpp писать #include "MyClass.h"? Если да, то надо ли в MyClass.h писать #include "MyClass.сpp" иначе как же компилятор найдёт описание методов класса? По одинаковому имени? |
15.04.2011, 23:05 | #2 | |||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,695
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
|||||
15.04.2011, 23:38 | #3 |
Пользователь
Регистрация: 23.10.2010
Сообщений: 17
|
То есть всё-таки можно в stdafx.h засунуть подключение других стандартных модулей?
И непонятно всё-таки, как происходит компиляция (линковка в частности). Что и в каком порядке компилируется, и подставляется из одного файла в другой? Компилируются все .cpp файлы проекта подряд (прихватывая нужные .h файлы) и потом подставляются в нужные места? |
15.04.2011, 23:58 | #4 | |||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,695
|
Компиляция довольно сложный многошаговый процесс.
Цитата:
Цитата:
Цитата:
Хедеры не прихватываются, а вставляются в cpp препроцессором. Прочитате про директиву include. |
|||
16.04.2011, 07:25 | #5 |
Пользователь
Регистрация: 23.10.2010
Сообщений: 17
|
Спасибо за подробные ответы.
А статью-то я в первую очередь прочитал. |
19.09.2011, 04:01 | #6 |
Регистрация: 19.09.2011
Сообщений: 3
|
Получается, что в файл main.cpp мы включаем stdafx.h, а в stdafx.h включаем, скажем, iostream и conio.h. Отсюда вопрос: а зачем тогда еще и файл stdafx.cpp, в котором также включается stdafx.h?
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Заголовочные файлы в Си | Pirr | Общие вопросы C/C++ | 12 | 18.03.2011 00:29 |
Заголовочные файлы | legendary | Общие вопросы C/C++ | 1 | 11.09.2010 19:41 |
Заголовочные файлы и windows 7 | papochka | Общие вопросы C/C++ | 7 | 14.11.2009 22:05 |
Заголовочные файлы | Гром | Общие вопросы C/C++ | 4 | 31.08.2009 15:36 |
Заголовочные файлы. C++ | Vi_King | Помощь студентам | 2 | 03.04.2008 18:47 |