Ответы с форумов MSDN

C++ - Разделение кода на несколько файлов

Date: 08.02.2021 6:24:49

В простейшем случае можно дописать перед использованием H: 

extern void H();

Но в реальном проекте, конечно, нужно выделять объявления в заголовочные файлы и подключать их, а не дописывать поодиночке. Тут проблема не в порядке как таковом, а том, как организовать структуру проекта. В C# можно разделить проект на сколько угодно файлов, и они будут все "видеть" друг друга. В С++ же это не работает, нужно подключать объявления для всех внешних символов.

Message 80

Date: 08.02.2021 7:44:28

Суть в том, что определенного "как надо" не существует. Как именно делить проект С++ на файлы, зависит от того, чего вы хотите добиться, а также от личных предпочтений. Можно сделать файл H.h, в дополнение к файлу H.cpp, с объявлением функции, и подключить его к M.cpp. Можно поместить само тело функции в H.h, сделав ее inline, и вовсе избавиться от файла H.cpp. Естественно, файл H.h надо физически создать, чтобы он был в проекте. 

Если вы пишете простые программы, возможно вам все это и не нужно. Ничто не мешает напихать весь код в один файл, благо навигация в Visual C++ работает отлично.

Message 79

Date: 08.02.2021 9:35:20

>А я с Cpp давным-давно не дружу...

Это не опровергает то, что я написал, а только подтверждает. Если не дружите, начните со схемы "все в одном файле", это будет проще. Либо сохраните ту структуру файлов, которая сейчас в той библиотеке. Когда получите минимально рабочее решение, можете уже думать о том, как разбивать на файлы.

>Куча сообщений об ошибках.

1. В .h файле не должно быть #include "stdafx.h". Предкомпилированные заголовки должны включаться в каждый cpp файл только один раз, и в самом начале файла. Либо можно их отключить, опять же, в простом проекте они только мешают.

2.  В H.h нужно включить то, что я привел ранее

extern void H();


Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub