में कक्षा के सार्वजनिक टाइपिफ़ेफ़ की घोषणा करें मैं आगे की घोषणाओं का उपयोग करके और स्पष्टीकरण फ़ाइल में # शामिल होने के द्वारा हेडर फ़ाइल "स्पेगेटी शामिल करें" के एक समूह को सरल बनाने की कोशिश कर रहा हूं। हालांकि, मैं इस परिदृश्य पर आते हैं:अग्रेषित करें सी ++
//Foo.h
#include "Bar.h"
class Foo
{
public:
void someMethod(Bar::someType_t &val);
};
//Bar.h
.
.
.
class Bar
{
public:
typedef std::vector<SomeClass> someType_t;
};
मैं दूर करने के लिए #include "Bar.h" संभव के रूप में कई मामलों में चाहते हैं। मैं उस स्थिति को भी देखता हूं जहां बार.h में टाइपपीफ बार कक्षा के बाहर सूचीबद्ध है। मुझे लगता है कि दोनों स्थितियों को उसी तरह से संबोधित किया जा सकता है।
कोई विचार?
बार वास्तव में कक्षा या टेम्पलेट है? यदि बार एक टेम्पलेट है तो उत्तर अलग-अलग होंगे, यह है कि यदि बार अद्वितीय नहीं है और इस प्रकार बार :: someType_t अद्वितीय नहीं है। –