पायथन में हम निम्नलिखित कोड की तरह तर्क नाम का उपयोग करके कॉल किए गए फ़ंक्शन में तर्क पारित कर सकते हैं, हम वही काम कैसे कर सकते हैं सी ++, मुझे इसकी आवश्यकता थी क्योंकि, यदि हमारे पास बहुत अधिक पैरामीटर हैं तो तर्क के स्थान को गड़बड़ करना आसान है फ़ंक्शन और कॉलिंग फ़ंक्शन कहा जाता है

def calendar(year,month,day):
    return "f{day}:{month}:{year}"
print(calendar(day=4,year=2021,month=9) #here arguments are passed in order of day,year and month  

उत्पादन "4:9:2021" नामित तर्कों का उपयोग करके फ़ंक्शन को परिभाषित करते समय पारित मापदंडों के बावजूद पारित नहीं किया गया है

string calendar(int year,int month,int day)
{
    return year,month,day;
}

int main ()
{       
cout<<calendar(" ? ");// How can we pass arguments like that of python in c++
}

0
Puneeth G P 4 सितंबर 2021, 21:27

2 जवाब

सबसे बढ़िया उत्तर

न तो सी और न ही सी ++ नामित पैरामीटर का समर्थन करता है।

आप इसके सबसे करीब आ सकते हैं struct को सभी मापदंडों के साथ परिभाषित करना:

struct cal_params {
    int year;
    int month;
    int day;
};

उस संरचना का उदाहरण लेने के लिए फ़ंक्शन को परिभाषित करें:

char *calendar(struct cal_params params)
{
    ...
}

फिर नामित प्रारंभकर्ताओं का उपयोग करके फ़ंक्शन को एक यौगिक शाब्दिक के साथ कॉल करें:

char *str = calendar((struct cal_params){ .year=2021, .month=9, .day=4});
4
dbush 4 सितंबर 2021, 18:43

सी ++ में यह सुविधा नहीं है। जैसा कि this answer में दिखाया गया है, आप किसी संरचना के सदस्यों का नामकरण करके इसका अनुकरण कर सकते हैं। वैकल्पिक रूप से आप अलग-अलग प्रकार के तर्कों को नाम दे सकते हैं:

#include <string>
#include <iostream>

struct Year { int value; };
struct Month { int value; };
struct Day { int value; };

std::string calendar(Year y,Month m,Day d)
{
    return std::to_string(y.value) + "-" + std::to_string(m.value) + "-" + std::to_string(d.value);
}

int main ()
{       
    std::cout<<calendar(Year{2001},Month{31},Day{42});
}
0
463035818_is_not_a_number 4 सितंबर 2021, 23:42