আমার দুটি সদস্যের সাথে একটি কাঠামো রয়েছে, উদাহরণস্বরূপ:
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
আমাকে যখন এই জাতীয় সমস্যার সমাধান করতে হবে তখন আমার কী করা উচিত? এমন কোনও ডাটা টাইপ রয়েছে যা কোনও সদস্যকে অ্যাক্সেস করতে পারে?
@ ket8888
—
সুপার
c++এর পয়েন্টার-থেকে-সদস্য রয়েছে, তাই এই কাজটি করার জন্য কাস্টম পয়েন্টার হ্যাকের প্রয়োজন নেই।
আপনি ঠিক বলেছেন ঠিক আছে। পূর্বে সদস্য হিসাবে আমার কাছে দুটি স্ট্রিং ছিল, তবে আমি সেগুলিকে ইনট এর মধ্যে পরিবর্তন করেছি। আমি "std ::" অপসারণ করতে ভুলে গিয়েছি।
—
অ্যাড্রিয়ান
dsm = 0অ্যাক্সেস করতেxএবংdsm = 4অ্যাক্সেস করতেy, তাহলে আপনি তাদের মত অ্যাক্সেস চাইint val = int(*(&ds+dsm))।