class IDontControl
{
class Nested
{
Nested(int i);
};
};
मुझे आगे के संदर्भ की आवश्यकता थी जैसे:
class IDontControl::Nested; // But this doesn't work.
मेरा समाधान था:
class IDontControl_Nested; // Forward reference to distinct name.
बाद में जब मैं पूरी परिभाषा का उपयोग कर सकता था:
#include <idontcontrol.h>
// I defined the forward ref like this:
class IDontControl_Nested : public IDontControl::Nested
{
// Needed to make a forwarding constructor here
IDontControl_Nested(int i) : Nested(i) { }
};
यदि जटिल कंस्ट्रक्टर या अन्य विशेष सदस्य फ़ंक्शंस थे जो सुचारू रूप से विरासत में नहीं मिले, तो यह तकनीक शायद अधिक परेशानी वाली बात होगी। मैं कल्पना कर सकता हूं कि कुछ टेम्प्लेट जादू बुरी तरह से प्रतिक्रिया कर रहे हैं।
लेकिन मेरे बहुत ही साधारण मामले में, यह काम करने लगता है।