कृपया my first attempt at answering this देखते हैं। चीजों को सरल बनाने के प्रयास में मैंने पूरी कहानी बताने के लिए उपेक्षित किया। मेरा उदाहरण काम करता है! माफ़ कीजिये।मैं कैसे एक पुस्तकालय के भीतर से मेरी कक्षा का मुख्य एक दोस्त कैसे करूं?
पूरी कहानी है कि यह एक पुस्तकालय एक फ़ाइल में एक वर्ग और एक अन्य फ़ाइल में मुख्य, सभी मेरे पुस्तकालय में जुड़ा हुआ होता है है। पुस्तकालय एक प्रक्रिया ढांचे के लिए आधार प्रदान कर रहा है, यही कारण है कि मुख्य पुस्तकालय में है, न कि प्रक्रिया।
नीचे मैं क्या है के नीचे छीन संस्करण है।
pf.hpp
using namespace std;
namespace MyNamespace
{
class ProcessManager
{
public:
friend int main(int argc, char** argv);
private:
void test();
};
};
pf.cpp
#include "pf.h"
namespace MyNamespace
{
ProcessManager::test()
{
cout << "My friend has accessed my member" << endl;
}
};
pfmain.cpp
#include "pf.hpp"
int main(int argc, char** argv)
{
ProcessManager pm;
pm.test();
}
ध्यान दें कि यह पुस्तकालय
के संकलन पर विफल रहता है क्या मैं कोशिश की है:
- सभी जगह
- मुख्य उपयोग वैश्विक विस्तार करने के लिए दोस्त संदर्भ बनाना अधिक दोस्त बढ़ते (जैसे :: मुख्य)
- मेकिंग दोस्त और मुख्य घोषणाओं वैश्विक क्षेत्र
मैं क्या याद आ रही है का उपयोग करें?
धन्यवाद!
यह थोड़ा सा विषय है, लेकिन बहुत से लोग कहेंगे कि 'मित्र' कीवर्ड कभी भी एक अच्छा समाधान नहीं है। – asveikau
यह आदर्श नहीं है मैं सहमत हूं, लेकिन कभी-कभी आपके पास कोई अन्य अच्छा विकल्प नहीं है – Jaime
'मुख्य() 'के अन्य रूपों को फेंकने पर विचार करना चाहता हूं। यकीन नहीं है कि वे फेसबुक पर हैं या नहीं। –