जब मैं अपने वर्ग कार्यान्वयन में से एक के साथ मौजूदा सीपीपी में इस कोड को जोड़नाकोई वैश्विक चर प्रारंभ
#include <iostream>
struct TestStruct{
TestStruct(int i)
{
std::cerr << i << std::endl;
x = i;
}
int x;
};
TestStruct t(8);
यह 8 main
निष्पादित से पहले प्रिंट करता है।
लेकिन जब मैंने नई खाली फ़ाइल test.cpp बनाई और उसी कोड को इसमें रखा, तो कुछ भी मुद्रित नहीं किया गया था। मैंने जांच की कि यह सीपीपी संकलित और जुड़ा हुआ था। स्थिर सीबी के रूप में संकलित सभी सीपीपी फाइलें और फिर इस lib को main.o निष्पादन योग्य फ़ाइल में लिंक किया गया है। मैं g ++ 5.3 का उपयोग करता हूं केवल विकल्प -std=C++14
है।
दूसरे मामले में वैश्विक चर प्रारंभिकरण क्यों याद किया जाता है?
कृपया अपनी टाइपिंग गलतियों को ठीक करें और आपके मामले 1 और केस 2 के बीच क्या अंतर है? –
अन्य बड़े कोड के साथ सीपीपी में पहला मामला और नई फ़ाइल –