दिलचस्प पोस्ट
Regex में '\ g' एंकर का क्या उपयोग है? तीन अंक दिए गए परबोलो के शिखर की गणना कैसे करें जीसीसी डिफ़ॉल्ट क्या निर्देशिका शामिल हैं? आप अपने सार्वजनिक आराम एपीआई का परीक्षण करने के लिए कौन से उपकरण का उपयोग करते हैं? MySQL इनर क्वेरी एकाधिक मसौदाओं में शामिल हों एंड्रॉइड – एसक्यूलाइट डेटाबेस एंड्रॉइड डिवाइस को खींच रहा है ऑनक्लिक कॉलिंग ऑब्जेक्ट कैसे प्राप्त करें? एंड्रॉइड पूरी तरह से पारदर्शी स्टेटस बार? स्मृति में स्ट्रिंग से लोड नोड.जेएस मॉड्यूल ट्विटर बूटस्ट्रैप रिमोट मोडल हर बार एक ही सामग्री दिखाती है एक डीआईवी बनाओ एक संपूर्ण तालिका सेल भरें जीआईटी के साथ चेरी को चुनने का क्या मतलब है? क्लिक ईवेंट श्रोता के लिए 'वापसी झूठी' जोड़ने का क्या असर है? setImmediate vs. nextTick त्रुटि प्राप्त हो रही है: उपयोगकर्ता के लिए "पोस्टग्रेर्स" के लिए पीअर प्रमाणीकरण विफल रहा, जब प्सक्स्कीएल रेल के साथ काम कर रहा था

जब मैं फ़ंक्शन के अंदर कोई पैरामीटर बदलता हूं, तो क्या यह कॉलर के लिए भी बदलता है?

मैंने नीचे एक फ़ंक्शन लिखी है:

void trans(double x,double y,double theta,double m,double n) { m=cos(theta)*x+sin(theta)*y; n=-sin(theta)*x+cos(theta)*y; } 

अगर मैं उन्हें उसी फाइल में कॉल करता हूँ

 trans(center_x,center_y,angle,xc,yc); 

क्या xc और yc परिवर्तन का मूल्य होगा? यदि नहीं, तो मुझे क्या करना चाहिए?

Solutions Collecting From Web of "जब मैं फ़ंक्शन के अंदर कोई पैरामीटर बदलता हूं, तो क्या यह कॉलर के लिए भी बदलता है?"

चूंकि आप सी ++ का प्रयोग कर रहे हैं, अगर आप बदलना चाहते हैं, तो आप संदर्भ का उपयोग कर सकते हैं:

 void trans(double x, double y, double theta, double& m, double& n) { m=cos(theta)*x+sin(theta)*y; n=-sin(theta)*x+cos(theta)*y; } int main() { // ... // no special decoration required for xc and yc when using references trans(center_x, center_y, angle, xc, yc); // ... } 

यदि आप सी का उपयोग कर रहे थे, तो आपको स्पष्ट संकेत या पते, जैसे कि:

 void trans(double x, double y, double theta, double* m, double* n) { *m=cos(theta)*x+sin(theta)*y; *n=-sin(theta)*x+cos(theta)*y; } int main() { /* ... */ /* have to use an ampersand to explicitly pass address */ trans(center_x, center_y, angle, &xc, &yc); /* ... */ } 

संदर्भों का उपयोग करने के बारे में कुछ और जानकारी के लिए संदर्भों पर सी ++ अकसर किये गए सवाल लाइट की प्रविष्टि की जांच करने की सिफारिश करूँगा I

संदर्भ से गुजरना वास्तव में एक सही जवाब है, हालांकि, सी ++ सॉर्ट-इन की अनुमति std::tuple और (दो मानों के लिए) std::pair :

 #include <cmath> #include <tuple> using std::cos; using std::sin; using std::make_tuple; using std::tuple; tuple<double, double> trans(double x, double y, double theta) { double m = cos(theta)*x + sin(theta)*y; double n = -sin(theta)*x + cos(theta)*y; return make_tuple(m, n); } 

इस तरह, आपको आउट-मापदंडों का उपयोग बिल्कुल भी नहीं करना पड़ता है।

कॉलर की तरफ, आप अन्य चर में टपल को खोलने के लिए std::tie का उपयोग कर सकते हैं:

 using std::tie; double xc, yc; tie(xc, yc) = trans(1, 1, M_PI); // Use xc and yc from here on 

उम्मीद है की यह मदद करेगा!

आपको संदर्भ द्वारा अपने चर को पास करने की आवश्यकता है जिसका मतलब है

 void trans(double x,double y,double theta,double &m,double &n) { ... } 

जैसा कि ऊपर कहा गया है, आपको 'एम' और 'एन' के बदलते मूल्यों को वापस करने के संदर्भ से पारित करना होगा, लेकिन … संदर्भ से सब कुछ पारित करने पर विचार करना और उन पैरामीटर के लिए कॉन्स्ट का उपयोग करना जो आप अपने फ़ंक्शन के अंदर बदलना नहीं चाहते हैं

 void trans(const double& x, const double& y,const double& theta, double& m,double& n)