class IDontControl
{
class Nested
{
Nested(int i);
};
};
Ben gibi ileri bir referans gerekiyordu:
class IDontControl::Nested; // But this doesn't work.
Geçici çözümüm:
class IDontControl_Nested; // Forward reference to distinct name.
Daha sonra tam tanımı kullanabileceğim zaman:
#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) { }
};
Bu teknik, sorunsuz bir şekilde miras alınmayan karmaşık kurucular veya diğer özel üye işlevleri olsaydı muhtemelen değerinden daha fazla sorun olurdu. Belli bir şablon büyünün kötü tepki verdiğini hayal edebiliyordum.
Ama benim çok basit durumumda, işe yarıyor gibi görünüyor.