मेरे पास दो सदस्यों के साथ एक संरचना है, उदाहरण के लिए:
struct DataSet {
int x;
int y;
};
..., और मुझे एक विधि में उन तक पहुंचना है, लेकिन केवल एक समय में, उदाहरण के लिए:
void foo(StructMember dsm) { // ("StructMember" does not exist)
DataSet ds;
ds.x = 4;
ds.y = 6;
std::cout << ds.dsm * ds.dsm << std::endl;
}
foo(x);
foo(y);
आउटपुट मैं चाहता हूँ:
16
36
जब मुझे इस तरह की समस्या का समाधान करना है तो मुझे क्या करना चाहिए? क्या कोई डेटा प्रकार है जो किसी सदस्य तक पहुंच सकता है?
@ ocket8888
—
सुपर
c++में पॉइंटर-टू-मेंबर हैं, इसलिए इस काम को करने के लिए कस्टम पॉइंटर हैक की कोई आवश्यकता नहीं है।
@eerorika तुम सही हो। पहले मेरे पास सदस्यों के रूप में दो तार थे, लेकिन मैंने उन्हें इंट में बदल दिया। मैं "std ::" निकालना भूल गया हूँ।
—
एड्रियन
dsm = 0एक्सेस करनाxऔरdsm = 4एक्सेसyकरना चाहते हैं, फिर आप उन्हें पसंद करेंगेint val = int(*(&ds+dsm))।