सी ++ का उपयोग करते समय किसी को मुख्य फ़ंक्शन के अंदर एक निजी विशेषता तक पहुंचने की अनुमति नहीं है। उदाहरण:मुख्य विशेषता के अंदर मुख्य विशेषता के पीछे क्या विचार है? जावा एक्स सी ++
#include <iostream>
using namespace std;
class Test {
private: int a;
public:
Test(int value) { a = value; }
int getValue() { return a; }
};
int main (int argc, char *argv[]) {
Test test2(4);
cout << test2.a; // Compile error! Test::a is private within this context
cout << test2.getValue(); // OK!
return 0;
}
यह स्पष्ट है क्यों करते समय कोई त्रुटि वर्ग तरीकों के बाहर निजी गुण तक पहुँचने के बाद से सी ++ कक्षाओं के अंदर मुख्य कार्य नहीं है।
हालांकि, जावा में यह अनुमति दी है:
public class Test {
private int a;
public Test(int value) { a = value; }
public int getValue() { return a; }
public static void main (String args[]) {
Test test1 = new Test(4);
System.out.println(test1.a);
}
}
मैं इस मामले के मुख्य में समझ में टेस्ट वर्ग के अंदर है। हालांकि, मैं इस विचार को समझ नहीं पा रहा हूं कि इसकी अनुमति क्यों है, और कोड के विकास/प्रबंधन में इसका क्या प्रभाव है।
सी ++ सीखते समय, मैंने एक बार सुना "कक्षाओं में मुख्य नहीं होना चाहिए। मुख्य कक्षाओं के उदाहरणों के साथ कार्य करता है या उपयोग करता है"।
क्या कोई इस प्रश्न पर कुछ प्रकाश डाल सकता है?
'मुख्य 'जावा में एक वर्ग के भीतर बहुत ज्यादा रहना है, क्योंकि यह कक्षा के बाहर रहने के लिए अवैध होगा। जावा में कार्यों के लिए कोई वैश्विक दायरा नहीं है। – Dervall
मेरे पास हमेशा एक वर्ग में मुख्य प्रविष्टि बिंदु है जिसमें मुख्य कार्य नहीं है। यह वास्तव में मेरे लिए कक्षा में मुख्य होने का अर्थ नहीं है। – L7ColWinters
अब तक मुझे विश्वास है कि यह भाषा डेवलपर्स का विकल्प था: मुख्य() को अपवाद नहीं करने के लिए, भले ही यह एक विशेष कार्य था, किसी भी अन्य विधि तक पहुंच प्रदान करना। –