/ / Qt में फ़ाइलें शामिल हैं - c ++, qt, शामिल हैं

क्यूटी में फाइलें शामिल हैं - सी ++, क्यूटी, शामिल हैं

मैं किसी ऐसे व्यक्ति के साथ चर्चा में आया, जो मुझे बताता है कि यह करना अच्छा नहीं है कि Qt फ़ाइलों के साथ क्या करता है क्योंकि मैंने अपने कोड में वही रणनीति अपनाई।

एक उदाहरण के रूप में QApplication का उपयोग करें, जब आप QApplication को शामिल करना चाहते हैं तो आपको करना चाहिए:

#include <QApplication>

QApplication विस्तार के बिना एक फाइल है जिसमें शामिल हैं:

#include "qapplication.h"

एकमात्र नुकसान यह है कि यह परियोजना में अधिक फाइलें बनाता है। इसके अलावा मुझे लगता है कि यह केवल फायदे हैं।

तो मेरा सवाल यह है कि यह एक अच्छा या बुरा विचार क्यों है?

उत्तर:

जवाब के लिए 2 № 1

मुझे लगता है कि यह व्यक्तिगत स्वाद की बात है, ज्यादातर। विभिन्न परियोजनाएं अलग-अलग शैली का उपयोग करती हैं। क्यूटी ने इस शैली को उठाया।

1) यह मूल रूप से आंशिक रूप से मेल खाता हैहेडर एक्सटेंशन के बिना मानक लाइब्रेरी शामिल है, हालांकि कैमलकेस। यह इस संबंध में भिन्न है कि मानक पुस्तकालय इन दिनों प्रत्यय संस्करण का उपयोग करने की अनुमति नहीं देता है।

2) यह वर्ग के साथ मदद भी कर सकता है एक अलग मुख्य वर्ग के साथ हेडर के भीतर भी शामिल है। इस उदाहरण को देखें:

#include <QFoo>

जहां QFoo qbar.h में परिभाषित किया गया है क्योंकि मुख्य वर्ग QBar है, लेकिन उसी हेडर में एक और वर्ग डाला गया है।

एकमात्र नुकसान यह है कि यह परियोजना में अधिक फाइलें बनाता है।

यह जरूरत से ज्यादा फाइलें नहीं बनाता है क्योंकिइन्हें Qt प्रोजेक्ट की तरह मक्खी पर उत्पन्न किया जा सकता है। उस स्थिति में, यह आपके स्रोत के पेड़ को अव्यवस्थित नहीं करता है, और इसे निर्माण निर्देशिका में रखा जाएगा, या कम से कम एक अलग जगह जहां यह आपके रास्ते में नहीं मिलता है। यह वर्तमान में किया जाता है syncqt Qt प्रोजेक्ट में


जवाब के लिए 2 № 2

बिना एक्सटेंशन वाली हेडर फ़ाइलों का उपयोग करना एक नहीं हैअच्छा विचार है क्योंकि इससे हेडर फ़ाइलों (* .h या * .hpp) को खोजना मुश्किल हो जाता है और इससे फ़ाइल की सामग्री को पहचानना अधिक कठिन हो जाता है (उदाहरण के लिए यदि आपका संपादक उचित सिंटैक्स हाइलाइटिंग मोड को चुनने के लिए एक्सटेंशन पर निर्भर है )। इसके अलावा यह परियोजना में अधिक फ़ाइलों का कारण बनता है जैसा कि आपने उल्लेख किया है।

इसके अलावा Qt उस सम्मेलन का सटीक उपयोग करता है क्योंकि स्मार्ट प्रोग्रामर "t। इसका मतलब है कि आपके हेडर ने नए Qt हेडर के साथ" t संघर्ष को जीता है।

इसलिए मुझे लगता है कि एक्सटेंशन वाली अपनी हेडर फ़ाइलों का उपयोग करने से आपकी कस्टम हेडर फाइलें किसी तरह से क्यूटी वालों से अलग हो जाती हैं। यह अधिक स्पष्ट और साफ करता है कि कौन सा शीर्ष लेख Qt के लिए है और कौन सा आपका है।