Когда вам нужно использовать #include в c ++

Я занимаюсь программированием уже некоторое время, и одна вещь, которую я так и не понял, - это когда вам нужно #include что-то. Я знаю, что на всякий случай вы можете делать это всякий раз, когда используете что-то, объявленное в другом файле. Однако иногда я обнаруживаю, что могу удалить #include , и все по-прежнему будет компилироваться нормально. Насколько я могу судить, это связано с тем, что другие включенные файлы уже включают внешнее определение. Есть два конкретных случая, в которых мне интересно узнать поведение для:

  1. Допустим, у нас есть три пары .h / .cc: f1.h / .cc, f2.h / .cc и f3.h / .cc . Если f2.h / .cc включает f1.h, а f3.h / .cc включает f2.h, обязательно ли f3.h / .cc включать f1.h, или все определения f1.h будут видны для f3, когда он включен в f2?

  2. Еще раз скажем, что у нас есть три пары .h / .cc: f1.h / .cc, f2.h / .cc и f3.h / .cc. Если f2 включает f1, а f2 включает f1, а затем f3 включает f1 или f2, не вызовет ли "круговая связь" между f1 и f2 проблемы?

Знаете ли вы какие-либо хорошие ресурсы в Интернете, которые я могу прочитать, чтобы лучше понять, как включить что-то в одном файле влияет на последующие файлы в проекте?

6
задан Brian Tompsett - 汤莱恩 11 March 2016 в 11:05
поделиться