मैंने सी ++ में पहले कभी नहीं खेला है, लेकिन यह अजीब है कि यह अभी भी संकलित है लेकिन मुझे उम्मीद नहीं है। क्या कोई मुझे बता सकता है कि यह क्या करता है? कृपया कोड देखें, अधिक जानकारी निम्नानुसार है।सी ++ में कक्षा को इंस्टेंट करना: अजीब सिंटेक्स बग
#include <iostream>
using namespace std;
class Test{
public:
Test();
};
Test::Test(){ cout << "ctor" << endl; }
int main(void){
Test t(); // this compiles but doesn't call the constructor
return(0);
}
यह संकलित होगा, लेकिन अगर मैं "टी" का उपयोग करने की कोशिश करता हूं तो यह नहीं होगा। मैं केवल कन्स्ट्रक्टर कार्यक्षमता पर निर्भर था, और मेरा कोड अपेक्षित काम नहीं करता था। समाधान कोष्ठक खोना है "टेस्ट टी();" "टेस्ट टी;" के लिए। मेरा सवाल यह है कि "टेस्ट टी();" में क्या चल रहा है उदाहरण, और संकलक सोचने वाला क्या हो रहा है कि यह इसे संकलित करने देता है।
सबसे अप्रिय पार्स को फिर से देखें:
सबसे आसान तरीका है ठीक कि पार्स कोष्टक से छुटकारा पाने के और केवल इस तरह के रूप में अपने चर घोषित है। – chris
आपके अनुष्ठान के अनुष्ठान में आपका स्वागत है। –
सवाल यह है कि ... क्या संकलक जानता था कि आप क्या उम्मीद कर रहे थे? :) – Carl