/ / Qt zahŕňajú súbory - c ++, qt, vrátane

Qt obsahuje súbory - c ++, qt, include

Dostal som sa do diskusie s niekým, kto mi hovorí, že to nie je dobré robiť to, čo robí Qt s zahrnúť súbory, pretože som prijal rovnakú stratégiu v mojom kóde.

Použite príklad QAplikácie, ak chcete zahrnúť QAplikáciu, potom by ste mali urobiť:

#include <QApplication>

QApplication je súbor bez rozšírenia, ktorý obsahuje:

#include "qapplication.h"

Jedinou nevýhodou je, že vytvára viac súborov v projekte. Okrem toho si myslím, že to má len výhody.

Takže moja otázka znie, prečo je to dobrý alebo zlý nápad?

odpovede:

2 pre odpoveď č. 1

Myslím, že je to vec osobného vkusu, väčšinou. Rôzne projekty používajú iný štýl. Qt zdvihol tento štýl.

1) V podstate sa čiastočne zhoduje sštandardná knižnica obsahuje bez rozšírenia hlavičky, hoci CamelCase. V tomto ohľade je však iné, že štandardná knižnica v týchto dňoch neumožňuje používať príponu.

2) To by mohlo tiež pomôcť s triedou zahŕňa v hlavičke s inou hlavnou triedou. Pozrite si tento príklad:

#include <QFoo>

kde QFoo je definované v qbar.h, pretože hlavná trieda je QBar, ale do tej istej hlavičky je vložená iná trieda.

Jedinou nevýhodou je, že vytvára viac súborov v projekte.

Nevytvára viac súborov, ako je potrebné, pretožetieto by mohli byť generované za behu ako v Qt projekte. V tomto prípade to neporušuje váš zdrojový strom a bude vložený do adresára na vytvorenie, alebo aspoň na samostatné miesto, kde sa nedostane do cesty. To sa robí v súčasnosti syncqt v Qt projekte.


2 pre odpoveď č. 2

Použitie hlavičkových súborov bez prípony nie jedobrý nápad, pretože sťažuje vyhľadávanie v hlavičkových súboroch (* .h alebo * .hpp) a sťažuje identifikáciu obsahu súboru (napríklad ak sa editor pri výbere správneho režimu zvýraznenia syntaxe spolieha na rozšírenie ). Tiež spôsobuje viac súborov v projekte, ako ste spomínali.

Qt tiež používa tento dohovor presne preto, že inteligentní programátori sa nezhodujú.

Takže si myslím, že použitie súborov hlavičky s rozšíreniami nejakým spôsobom oddeľuje vaše vlastné súbory hlavičky od Qt. To robí to viac jasné a čisté, že hlavička je pre Qt a ktorý z nich je váš.