मेरे पास एक सी ++ प्रोग्राम है:सी ++। त्रुटि: शून्य पॉइंटर-टू-ऑब्जेक्ट प्रकार नहीं है
struct arguments
{
int a, b, c;
arguments(): a(3), b(6), c(9) {}
};
class test_class{
public:
void *member_func(void *args){
arguments vars = (arguments *) (*args); //error: void is not a
//pointer-to-object type
std::cout << "\n" << vars.a << "\t" << vars.b << "\t" << vars.c << "\n";
}
};
संकलन पर यह एक त्रुटि फेंकता है:
error: ‘void*’ is not a pointer-to-object type
क्या कोई यह समझा सकता है कि मैं इस त्रुटि को उत्पन्न करने के लिए क्या कर रहा हूं?
हाँ, वहाँ है। क्या आपने एक और डेटाटाइप देने का प्रयास किया है? – Blender
इस उदाहरण में आपके पास कोई "अमूर्त प्रकार" नहीं है (मुझे लगता है कि आप सार आधार वर्गों का मतलब है)। आप शायद '* (तर्क *) args' का मतलब है, जो' void * 'से' arguments * ', _then_ को संदर्भित करता है। आपका वर्तमान कोड 'शून्य * '(जो अवैध है) को अस्वीकार करने का प्रयास करता है, फिर अस्वीकृत मूल्य को' तर्क * 'पर डाला जाता है, जो लगभग निश्चित रूप से आपके इच्छित नहीं है। –
@ क्रिस हाँ, यही वह है जो मैं करने की कोशिश कर रहा था, स्पष्टीकरण के लिए धन्यवाद। बीटीडब्ल्यू, मैंने सोचा कि structs और कक्षाओं को सार प्रकार के रूप में माना जाता था जबकि उदाहरण के लिए। int, फ्लोट गैर अमूर्त हैं। –