मैंने सोचा कि private
विधियां, जिनका उपयोग कक्षा के अंदर नहीं किया जाता है उन्हें कंपाइलर/लिंकर द्वारा हटा दिया जाता है और अंतिम बाइनरी का हिस्सा नहीं होता है।अंतिम बाइनरी से अप्रयुक्त तरीकों को कैसे बाहर निकालना है?
मैंने एक निजी विधि के साथ एक उदाहरण वर्ग बनाया है जिसे कार्यान्वित किया गया है लेकिन इसका उपयोग नहीं किया गया है।
class XXX
{
public:
XXX();
private:
void MyUnusedMethod();
};
और कार्यान्वयन फ़ाइल में:
void XXX::MyUnusedMethod()
{
const char* hugo = "ABCCHARLYABC";
printf(hugo);
}
संकलन के बाद स्ट्रिंग अभी भी अंतिम बाइनरी में मौजूद हैं। क्यूं कर? और मैं इसे कैसे रोक सकता हूं?
सादर, चार्ली
आप उस विधि को '#if 0 ... # endif' ब्लॉक में क्यों नहीं डाल सकते? – iammilind
क्या आपने जीसीसी के लिए अनुकूलन झंडे tweaking करने की कोशिश की है? – slaphappy
यदि आपका मतलब '-O3' ध्वज है - इससे कोई फर्क नहीं पड़ता। बेशक - अगर मुझे पता है कि मैं इसका उपयोग नहीं करूँगा, तो मैं इसे हटाने के लिए बहुत आलसी नहीं हूं। लेकिन यह भी एक सामान्य सवाल है: यह संकलक/लिंकर द्वारा क्यों नहीं छोड़ा जाता है? – Charly