में सदस्य फ़ंक्शन पॉइंटर मैंने std :: shared_pointer को डिलीटर के साथ उपयोग करने का प्रयास किया। मैंने एक सदस्य समारोह को हटाने के रूप में उपयोग करने की कोशिश की। हालांकि यह संकलित नहीं किया जा सका। कंपाइलर ने मुझे एक त्रुटि संदेश दिया लेकिन मुझे समझ में नहीं आया कि यह क्यों काम नहीं कर रहा था। क्या कोई जानता है कि यह क्यों काम नहीं करता? आपका बहुत बहुत धन्यवाद।कन्स्ट्रक्टर
सरलीकृत कोड पीछा कर रहा है,
#include <memory>
class MemberFunctionPointerInConstructor {
public:
MemberFunctionPointerInConstructor(void) {
std::shared_ptr<int> a = std::shared_ptr<int>(new int(1), deleter); // this line makes a compiler error message
}
void deleter(int* value) {
delete value;
}
};
संकलक से त्रुटि संदेश पीछा कर रहा है,
error: invalid use of non-static member function
std::shared_ptr<int> a = std::shared_ptr<int>(new int(1), deleter);
^
आपको बहुत बहुत धन्यवाद।
धन्यवाद याम मार्कोविच। – mora