मेरे पास दो कंस्ट्रक्टरों के साथ एक वर्ग है, एक जो कोई तर्क नहीं लेता है और एक जो एक तर्क लेता है।
कंस्ट्रक्टर का उपयोग करके ऑब्जेक्ट बनाना जो एक तर्क लेता है वह अपेक्षा के अनुरूप काम करता है। हालाँकि, अगर मैं कंस्ट्रक्टर का उपयोग करके ऑब्जेक्ट बनाता हूं जो कोई तर्क नहीं लेता है, तो मुझे एक त्रुटि मिलती है।
उदाहरण के लिए, यदि मैं इस कोड को संकलित करता हूं (g ++ 4.0.1 का उपयोग करके) ...
class Foo
{
public:
Foo() {};
Foo(int a) {};
void bar() {};
};
int main()
{
// this works...
Foo foo1(1);
foo1.bar();
// this does not...
Foo foo2();
foo2.bar();
return 0;
}
... मुझे निम्नलिखित त्रुटि मिलती है:
nonclass.cpp: In function ‘int main(int, const char**)’:
nonclass.cpp:17: error: request for member ‘bar’ in ‘foo2’, which is of non-class type ‘Foo ()()’
यह क्यों है, और मैं इसे कैसे काम करूं?