प्रोटोटाइप बनाने के ओवरलोडिंग समारोह c++

0

सवाल

मैं बनाने के लिए चाहते हैं एक से अधिक भार के साथ एक समारोह में एक प्रोटोटाइप C++.

#include <iostream>

using namespace std;

int rectangle(int p, int l);

int main() {
    cout << rectangle(3);
    return 0;
}

int rectangle(int p) {
    return p*p;
}

int rectangle(int p, int l) {
    return p*l;
}

मैं त्रुटि में

int rectangle(int p, int l);

है कि संभव बनाने के लिए प्रोटोटाइप के साथ एक समारोह ओवरलोडिंग? यदि संभव हो तो, यह करने के लिए कैसे

c++ function overloading
2021-11-24 03:34:09
1

सबसे अच्छा जवाब

1

आप की घोषणा करने के लिए समारोह से पहले आप का उपयोग करें/यह कहते हैं. तुमने किया था की घोषणा 2 तर्क के संस्करण rectangle समारोह, लेकिन आपको लगता है भूल करने के लिए घोषित करने के लिए 1 तर्क लेने संस्करण है ।

नीचे दिखाया के रूप में आप जोड़ने की घोषणा के लिए 1 तर्क संस्करण तो अपने कार्यक्रम काम करता है(संकलित).

#include <iostream>
using namespace std;

//declare the function before main
int rectangle(int p, int l);
int rectangle(int p);//ADDED THIS DECLARATION
int main() {
    cout << rectangle(3);
    return 0;
}
//define the functions after main
int rectangle(int p) {
    return p*p;
}
int rectangle(int p, int l) {
    return p*l;
}

कार्यक्रम के उत्पादन में देखा जा सकता है यहाँ.

वैकल्पिक समाधान:

यदि आप नहीं चाहते हैं की घोषणा करने के लिए प्रत्येक कार्य के लिए अलग से चाहिए तो आप बस को परिभाषित करने से पहले उन्हें मुख्य के बजाय उन्हें घोषणा के रूप में नीचे दिखाया गया है.

#include <iostream>
using namespace std;

//define the functions before main. This way there is no need to write a separate function declaration because all definition are declarations
int rectangle(int p) {
    return p*p;
}
int rectangle(int p, int l) {
    return p*l;
}

int main() {
    cout << rectangle(3);
    return 0;
}

2021-11-24 03:58:54

"आप की घोषणा करने के लिए समारोह से पहले आप का उपयोग करें/यह कहते हैं." - वैकल्पिक रूप से, सिर्फ समारोह को परिभाषित करने से पहले यह प्रयोग किया जाता के बिना एक अलग से घोषणा. के लिए एकल-फ़ाइल कार्यक्रमों, आगे की घोषणा केवल जरूरत है जब वहाँ एक आपसी निर्भरता के साथ है ।
Dai

तो मैं की जरूरत है एक ही नंबर के प्रोटोटाइप के रूप में ओवरलोडिंग समारोह?
Hanif Ramadhani

@HanifRamadhani डाल या अपने सभी कार्यों के पहले मुख्य. आगे का प्रयोग करें घोषणा जब तक आप वास्तव में जरूरत है इसे.
Louis Go

@HanifRamadhani यदि आप नहीं चाहते हैं की घोषणा करने के लिए प्रत्येक कार्य के लिए अलग है, तो आप कर सकते हैं बस को परिभाषित करने से पहले उन्हें मुख्य के रूप में मैंने किया है में मेरा वैकल्पिक समाधान. बाहर की जाँच करें वैकल्पिक समाधान है कि मैं पोस्ट में मेरा जवाब.
Anoop Rana

@HanifRamadhani अपने स्वागत कर रहे हैं. आप कर सकते हैं के निशान मेरे जवाब के रूप में सही है, तो यह आप में मदद मिली.
Anoop Rana

मैं भी रिवर्स के आदेश अधिभार और कॉल rectangle(p, p) से rectangle(int p).
Jarod42

@Jarod42 हाँ है कि संभव है, लेकिन मुझे आश्चर्य है कि अगर एक अच्छा विचार है इस मामले में. इस सरल मामले में कोई जरूरत नहीं है कॉल करने के लिए एक समारोह है, क्योंकि हम कर सकते हैं बस परिणाम प्राप्त द्वारा सीधे लेखन return p*p के बजाय बढ़ती जा रही कॉल की भूमि के ऊपर बुला द्वारा एक समारोह है.
Anoop Rana

यह निकालता है "दोहराव" तर्क । मौका हैं कोड के लिए किया जाएगा inlined द्वारा संकलक भी है.
Jarod42

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में