मान लीजिए कि मैं एक अस्थायी वस्तु को किसी फ़ंक्शन में पास करना चाहता हूं। क्या स्ट्रक्चर के साथ कोड बनाम 2 की 1 पंक्ति में ऐसा करने का कोई तरीका है?सी ++ में मूल्य द्वारा अस्थायी संरचना को पारित करने का सरल तरीका?
एक वर्ग के साथ
, मैं कर सकते हैं:
class_func(TestClass(5, 7));
दिया:
class TestClass
{
private:
int a;
short b;
public:
TestClass(int a_a, short a_b) : a(a_a), b(a_b)
{
}
int A() const
{
return a;
}
short B() const
{
return b;
}
};
void class_func(const TestClass & a_class)
{
printf("%d %d\n", a_class.A(), a_class.B());
}
अब, मैं कैसे एक struct के साथ क्या करते हैं? निकटतम मुझे मिल गया है है:
test_struct new_struct = { 5, 7 };
struct_func(new_struct);
दिया:
struct test_struct
{
int a;
short b;
};
void struct_func(const test_struct & a_struct)
{
printf("%d %d\n", a_struct.a, a_struct.b);
}
वस्तु अधिक सरल है, लेकिन मुझे आश्चर्य है कि वहाँ सही समारोह कॉल के साथ लाइन में struct सदस्य प्रारंभ करने के लिए एक तरीका है संरचना को एक कन्स्ट्रक्टर देने के बिना। (मैं एक कन्स्ट्रक्टर नहीं चाहता हूं। पूरे कारण में मैं संरचना का उपयोग कर रहा हूं बॉयलरप्लेट को इस अलग मामले में कक्षा सम्मेलनों को प्राप्त/सेट करने से बचाना है।)
तुम अब भी एक निर्माता Kee लिख सकते हैं सदस्य चर सार्वजनिक पिंग। इसलिए आपको प्राप्त/सेट विधियों की आवश्यकता नहीं है। क्या ऐसा करने में कोई समस्या है? – Naveen
क्या आप सी में स्ट्रक्चर प्रारंभिकरण प्राप्त करने का मतलब रखते थे? सी ++ में एक स्ट्रक्चर भी कर सकता है जो आप कक्षा में कर रहे हैं। – sand