आम तौर पर, मैं में संदर्भ द्वारा पास का उपयोग निम्न स्थितियों:
1) objetc एक सूचक से भी बड़ा आकार है: इस मामले में, अगर मैं objetc संशोधित नहीं चाहते हैं, एक स्थिरांक संदर्भ का उपयोग करें:
Reference object;
foo(object);
foo के साथ के रूप में घोषित:
void foo(const Reference & object);
2) कोड के लिए स्पष्ट है, इस तरह thigs से बचने की कोशिश: एक struct का उपयोग कर
int f1 = xxx;
int f2 = yyy;
int f3 = zzz;
....
foo(f1, f2, ............)
:
struct X
{
int f1;
int f2;
int f3;
....
};
X x;
x.f1 = xxx;
.....
foo(X);
foo के साथ के रूप में परिभाषित:
foo(const X & x);
3) speedup pourposes के लिए: याद रखें कि कॉलिंग कार्यों को बराबर रखना चाहिए स्टैक पर मीटर) 4) आपको फ़ंक्शन के अंदर पैरामीटर को संशोधित करने की आवश्यकता है।
Reference object;
foo(object);
foo साथ
घोषित:
void foo(Reference & object);
स्रोत
2012-12-19 08:00:36
यह उत्तर देखें: http://stackoverflow.com/a/114351/6345 (सूचक बनाम संदर्भ) –
इसी साइट पर इस प्रश्न पर कई बार पूछा गया था ... http://stackoverflow.com/questions/2139224/कैसे-टू-पास-ऑब्जेक्ट-टू-फ़ंक्शंस-इन-सी – nogard
कुछ हद तक अच्छा नियम: 'अगर (आकार (कुछ प्रकार)> आकार (शून्य *)) // संदर्भों का उपयोग करें –