मैं एक लाइब्रेरी लिखने की कोशिश कर रहा हूं जहां मेरे पास कुछ टेम्पलेट किए गए फ़ंक्शंस हैं, जिनमें से कुछ सहायक कार्य हैं इसलिए मैं नहीं चाहता कि मेरे उपयोगकर्ता उनके पास पहुंच सकें। कुछ बुनियादी कोड हो सकता हैछिपाने वाले हेल्पर फ़ंक्शन को छिपाना - स्थैतिक सदस्य या अनाम नामस्थान
//mylib.h
namespace myfuncs
{
template<class T>
void helper (T input, int extrainformation)
{
//do some usefull things
}
template<class T>
void dostuff(T input)
{
int someinfo=4;
helper(input, someinfo);
}
}
क्या यह संभव है किसी भी तरह सहायक समारोह को छिपाने के लिए इतना है कि पुस्तकालय के उपयोगकर्ताओं के लिए यह सीधे कॉल नहीं कर सकते? मैंने सोचा था कि एक अनाम नामस्थान नौकरी कर सकता है लेकिन क्योंकि मैं टेम्पलेट्स का उपयोग कर रहा हूं, मैं फ़ंक्शन घोषणा और शरीर को हेडर और कार्यान्वयन फ़ाइल के बीच विभाजित नहीं कर सकता। एक हेडर फ़ाइल में अनाम नामस्थान डालने का कोई उपयोग और खराब शैली नहीं है। एकमात्र चीज जो मैं सोच सकता हूं वह mylib
वर्ग बना रही है और कार्यों को निजी/सार्वजनिक स्थैतिक कार्यों के रूप में समाहित करती है।
किसी भी बेहतर समाधान की सराहना की जाएगी।
फिल
मैं परिवर्तन का सुझाव 'namespace' 'वर्ग' तक और सभी कार्यों को 'स्थिर' बनाएं, और फिर अपने 'सहायक' को 'निजी' में रखें। – neuront