Могут ли заголовки C ++ называться vector.h или matrix.h?

У меня есть проблемы в том числе в проекте C ++. Я включил math.h, но есть странные проблемы с моим vector.h и моими заголовочными файлами matrix.h. Могу ли я назвать эти файлы vector.h и matrix.h?

1

Решение

Два заголовка не могу иметь то же имя.

Под тем же именем подразумевается полное имя пути, поэтому

#inlcude "testClass.h"#include "heders/testClass.h" // OK, distinguishable

Visual studio не позволяет добавлять заголовок, имя которого уже существует в проекте.

Вы также должны проверить, что ваш заголовок действительно включен в ваш проект (или через ваш Makefile, систему сборки и т. Д.). Быстрая проверка может привести к синтаксической ошибке в этом заголовке и посмотреть, не нарушит ли она сборку.

Итак, чтобы вернуться к вашему вопросу, у вас уже есть заголовки с именами vector.h и matrix.h? Потому что это единственное, что мешает вам называть новые заголовки подобным образом.
Имейте в виду, что заголовки доступны с помощью #include <…> требовать, чтобы их папка была задана в качестве включающего (внешнего) каталога, чтобы квалификация по этому пути не работала

1

Другие решения

В теории я не знаю ничего, что могло бы запретить это делать.

Я бы подумал vector.h достаточно близко, чтобы <vector> что использовать его было бы плохой идеей.

Я не совсем взволнован matrix.h либо, но, по крайней мере, это не такой уж плохой выбор.

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

0

Обоснование, почему C ++ выбрал необычное <vector> Формат без суффикса заключается в том, что целью было сохранить совместимость с существующим кодом C, который вполне может иметь "vector.h", Так что ответ да, по дизайну.

0
По вопросам рекламы [email protected]