c++ - Why can't operator!= do the conversion? -


मेरे पास त्रुटि के साथ कोड है:

(Visual Studio त्रुटि:) त्रुटि 5 त्रुटि C2678: बाइनरी '! =': कोई ऑपरेटर नहीं मिला जो एक बाएं हाथ के ऑपरेंड प्रकार '`नोड' (या कोई स्वीकार्य रूपांतरण नहीं है)

  टेम्पलेट & lt; class सी, कक्षा टी & gt; सी खोज 2 (सी पहले, सी पिछले, टी सी) {// जबकि (पहले! = अंतिम & amp;; पहला! = सी) {++ पहले; } पहले लौटना; } संरचना नोड {नोड (इंट ए, नोड * ख): वाल (ए), अगला (बी) {}; इंट वैल; नोड * अगला; }; टेम्पलेट & lt; कक्षा T & gt; Struct नोड_ड्रोप {T * ptr; नोड_वापर (टी * पी = 0): पीटीआर (पी) {} नोड & amp; ऑपरेटर * () कॉन्स्ट {रिटर्न * पीटीआर}} नोड * ऑपरेटर- & gt; () कॉन्स्ट {रिटर्न पीटीआर}} नोड_वापर & amp; ऑपरेटर ++ () {ptr = ptr- & gt; अगला; वापसी * ​​यह;} नोड_वापर ऑपरेटर ++ (इंट) {नोड_वापर टीएमपी = * यह; ++ * इस; रिटर्न टीएमपी;} बूल ऑपरेटर == (कॉन्स्ट न्यूड_वापर & amp; i) const {रिटर्न ptr == i.ptr;} bool ऑपरेटर! = (कंसल्ट नोड_वापर & amp; i) const {return ptr! = I.ptr;}}; बूल ऑपरेटर == (कॉन्स्ट नोड एंड नोड, इंट एन) {return node.val == n; } Int main () {नोड * नोड 1 = नया नोड (3, नल); नोड * नोड 2 = नया नोड (4, नल); नोड 1- & gt; अगले = नोड 2; खोज 2 (नोड_वाप & लेफ्टिनेंट; नोड & gt; (नोड 1), नोड_वापर & lt; नोड & gt; (), 3)); नोड 1 हटाना; नोड 2 हटाना; वापसी 0; }   

इस कोड में क्या गलत है?

आप प्रयास कर रहे हैं नोड से int के साथ तुलना करने के लिए (यह find2 में किया जाता है जब * first! = C )।

जब आप नोड के साथ int की तुलना करने के लिए ऑपरेटर == प्रदान करते हैं, तो आपके पास नहीं है ऐसा करने के लिए एक ऑपरेटर! प्रदान किया गया यदि आप एक जोड़ते हैं, तो यह काम करना चाहिए।

Comments

Popular posts from this blog

Python SQLAlchemy:AttributeError: Neither 'Column' object nor 'Comparator' object has an attribute 'schema' -

java - How not to audit a join table and related entities using Hibernate Envers? -

mongodb - CakePHP paginator ignoring order, but only for certain values -