2009-10-04 7 views
2

У меня есть идея о том, как это сделать, но я хочу, чтобы убедиться, что я сделать это правильно ....В том числе несколько классов в одном файле заголовка

У меня есть пять классов данных. Когда я использую один, я обычно использую все из них (но не всегда).

Каждый класс имеет отдельный заголовочный файл. Меня тошнит от ссылки в каждом файле заголовка отдельно.

Каков наилучший способ решить эту проблему?

ответ

12

Создайте новый заголовочный файл под названием «DataFiles.h». Внутри этого есть свои пять операторов #import. Тогда, когда вам нужны классы файлов, просто #import "DataFiles.h".

Остерегайтесь круговых зависимостей.

(Это, как какао, Фонд, UIKit, CoreData, и другие ведут себя. Обратите внимание, что вы просто #import <Cocoa/Cocoa.h>, который импортирует все остальное. Открывают Cocoa.h и посмотрим)

+0

не нужно беспокоиться о циркуляре зависимостей при использовании #import вместо #include. Это в основном решение этой точной проблемы. –

+2

#import решает проблему объявления одного и того же символа дважды, но не будет решать круговые зависимости. (A.h импортирует B.h и B.h импортирует A.h). Вот почему у нас есть декларации вперед, используя директиву '@ class'. –

+0

Нет, вам все равно нужно беспокоиться о круговых зависимостях. Если A.h импортирует B.h и B.h импортирует A.h, это не работает правильно. – Chuck

Смежные вопросы