Влязох в дискусия с някой, който ми казва, че не е добре да правим това, което Qt прави с включването на файлове, защото приех същата стратегия в моя код.
Нека да използваме QApplication като пример, когато искате да включите QApplication тогава трябва да направите:
#include <QApplication>
QApplication е файл без разширение, който съдържа:
#include "qapplication.h"
Единственият недостатък, който виждаме, е, че той създава повече файлове в проекта. Освен това мисля, че има само предимства.
Така че въпросът ми е защо това е добра или лоша идея?
Отговори:
2 за отговор № 1Мисля, че най-вече е въпрос на личен вкус. Различните проекти използват различен стил. Qt вдигна този стил.
1) Всъщност е частично съвпадение настандартната библиотека включва без разширение на заглавката, въпреки че CamelCase. В това отношение е различно, въпреки че стандартната библиотека не позволява тези дни да използват наставката.
2) Също така може да помогне с включването на класа в заглавие с различен основен клас. Вижте този пример:
#include <QFoo>
където QFoo е дефиниран в qbar.h, тъй като главният клас е QBar, но в същия хедър има друг клас.
Единственият недостатък, който виждаме, е, че той създава повече файлове в проекта.
Той не създава повече файлове, отколкото е необходимо, защототе биха могли да се генерират в движение, както в проекта Qt. В този случай тя не затрупва дървото на източника ви и ще бъде пусната в директорията за създаване или най-малкото отделно място, където няма да ви пречи. Това се прави понастоящем от syncqt в проекта Qt.
2 за отговор № 2
Използването на заглавните файлове без разширение не е aдобра идея, тъй като затруднява търсенето на заглавните файлове (* .h или * .hpp) и затруднява идентифицирането на съдържанието на файла (например ако вашият редактор разчита на разширението, за да избере правилния режим за подчертаване на синтаксиса ). Също така причинява повече файлове в проекта, както споменахте.
Също така, Qt използва тази конвенция точно защото интелигентните програмисти не го правят. Това означава, че заглавията ви няма да се сблъскат с новите заглавия на Qt.
Така че мисля, че използването на заглавните файлове с разширения разделя вашите потребителски заглавни файлове от Qt такива по някакъв начин. Това го прави по-ясна и чиста, коя заглавка е за Qt и кой е ваш.