पहले, अपने डेटा के हस्ताक्षर() फ़ंक्शन:
bool data(struct *sampleData)
संभवतः काम नहीं कर सकता, क्योंकि तर्क एक नाम का अभाव है। जब आप एक फ़ंक्शन तर्क घोषित करते हैं जिसका आप वास्तव में उपयोग करना चाहते हैं, तो उसे एक नाम की आवश्यकता है। तो कुछ के लिए इसे बदल:
bool data(struct sampleData *samples)
लेकिन सी ++ में, आप बिल्कुल वास्तव में struct
उपयोग करने की आवश्यकता नहीं है। तो यह बस हो सकता है:
bool data(sampleData *samples)
दूसरा, sampleData
struct डेटा() उस बिंदु पर करने के लिए नहीं जाना जाता है। तो आपको लगता है कि इससे पहले कि यह घोषित करना चाहिए:
struct sampleData {
int N;
int M;
string sample_name;
string speaker;
};
bool data(sampleData *samples)
{
samples->N = 10;
samples->M = 20;
// etc.
}
और अंत में, आप प्रकार sampleData
की एक चर बनाने की जरूरत है। उदाहरण के लिए, अपने मुख्य() फ़ंक्शन में:
int main(int argc, char *argv[]) {
sampleData samples;
data(&samples);
}
नोट यदि आप डेटा के लिए() फ़ंक्शन चर का पता उत्तीर्ण करने की आवश्यकता है कि क्योंकि यह एक सूचक स्वीकार करता है।
हालांकि, ध्यान दें कि सी ++ में आप सीधे संदर्भ द्वारा तर्क पारित कर सकते हैं और पॉइंटर्स के साथ इसे "अनुकरण" करने की आवश्यकता नहीं है। आप इसके बजाय ऐसा कर सकते हैं:
// Note that the argument is taken by reference (the "&" in front
// of the argument name.)
bool data(sampleData &samples)
{
samples.N = 10;
samples.M = 20;
// etc.
}
int main(int argc, char *argv[]) {
sampleData samples;
// No need to pass a pointer here, since data() takes the
// passed argument by reference.
data(samples);
}
आप एक फ़ंक्शन में एक प्रकार का नाम पारित कर रहे हैं जो चर नहीं है? – billz
यह संदर्भ द्वारा नहीं है, यह सूचक है। आपने 'नमूनाडेटा' का उदाहरण नहीं बनाया है, इसलिए इसका कोई नाम नहीं है। साथ ही, फ़ंक्शन बूल डेटा को 'नमूनाडेटा' पता होना चाहिए कि कैसे मौजूद है? – Rapptz
@ बिल्ज़ 'नमूनाडेटा 'मेरी संरचना का नाम है। मैं इस संरचना को फ़ंक्शन – Phorce