संभव डुप्लिकेट है:
Why is there no call to the constructor?टेस्ट टी के बीच अंतर क्या है; और टेस्ट टी() ;? यदि टेस्ट एक वर्ग
मैं Visual Studio 2012 का उपयोग कर रहा, मान लीजिए टेस्ट एक वर्ग
class Test
{
};
जब मैं एक नया उदाहरण बनाने है परीक्षण के, निम्नलिखित दो तरीकों का अंतर क्या है?
रास्ता 1
Test t;
रास्ता 2
Test t();
मैं नीचे दिए गए कोड में यह सवाल है, मूल रूप से, मैं एक का एक उदाहरण रास्ता 2 में परिभाषित, मैं केवल एक त्रुटि मिली क्योंकि बी एक डिफ़ॉल्ट कन्स्ट्रक्टर प्रदान नहीं करता है, लेकिन जब मैं इसे 1 तरीके से परिभाषित करता हूं, तो मुझे एक अतिरिक्त त्रुटि मिली।
class B
{
B(int i){}
};
class A
{
A(){}
B b;
};
int main(void)
{
A a(); // define object a in way 2
getchar() ;
return 0 ;
}
अगर मैं रास्ते में एक परिभाषित 1
A a;
मुझे मिल जाएगा एक और त्रुटि कहा
त्रुटि C2248: 'एक :: ए': निजी सदस्य कक्षा में घोषित उपयोग नहीं कर सकते 'ए'
तो मुझे लगता है कि वहाँ होना चाहिए कुछ मतभेद हो दो तरीकों के बीच।
+1 :-) –
अच्छा, क्या एक बेवकूफ सवाल है, मुझे यकीन है कि मुझे पहले पता है, लेकिन ... आज मेरा दिन नहीं है :( – zdd
@zdd ऐसा होता है। –