/ / Qt включват файлове - c ++, qt, включват

Qt включва файловете - c ++, qt, включително

Влязох в дискусия с някой, който ми казва, че не е добре да правим това, което 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 и кой е ваш.