इस कोड को संकलित करता है तथा त्रुटियों के बिना चलाता है:मैं निजी क्षेत्र से निजी कन्स्ट्रक्टर क्यों कॉल कर सकता हूं?
class foo{
static foo *ref;
foo(){}
public:
static foo *getRef(){
return ref;
}
void bar(){}
};
foo* foo::ref = new foo; // the construcrtor is private!
int main(int argc, const char *argv[])
{
foo* f = foo::getRef();
f->bar();
return 0;
}
किसी समझा सकता है क्यों निर्माता कहा जा सकता है?
वास्तव में, एक compiler त्रुटि प्राप्त करने के लिए 'foo * ref = new foo;' ('foo ::' की अनुपस्थिति) के साथ अभिव्यक्ति को प्रतिस्थापित करें! –