Avatar ·

C++ में ऑपरेटर ओवरलोडिंग के मुख्य नियम और इडियम

सभी को नमस्कार! मैं लगभग छह महीने से C++ सीख रहा हूँ, और मुझे ऑपरेटर ओवरलोडिंग में भ्रम हो गया है। मैं सिंटैक्स समझता हूँ, लेकिन लगातार समस्याओं का सामना करता हूँ। उदाहरण के लिए, मैंने द्वि-आयामी वैक्टर के लिए एक सरल Vector2D क्लास लिखने की कोशिश की, जिसमें + ऑपरेटर ओवरलोड किया गया हो। यहाँ मेरा कोड है: ```cpp class Vector2D { public: Vector2D(double x, double y) : x_(x), y_(y) {} Vector2D operator+(const Vector2D& other) { return Vector2D(x_ + other.x_, y_ + other.y_); } // समस्या: मैं 2.0 + v क्यों नहीं लिख सकता? // या v1 + v2 + v3? private: double x_, y_; }; ``` जब मैं `Vector2D v3 = 2.0 + v1;` का उपयोग करने की कोशिश करता हूँ, तो कंपाइलर त्रुटि देता है। इसके अलावा, मुझे यकीन नहीं है कि cout में आउटपुट के लिए `<<` ऑपरेटर को सही तरीके से कैसे ओवरलोड किया जाए, और कब रेफरेंस लौटाना चाहिए और कब वैल्यू। क्या ऑपरेटर ओवरलोडिंग के मुख्य नियमों और इडियम का सारांश मिल सकता है? कौन से ऑपरेटर को ओवरलोड किया जा सकता है और कौन से नहीं? friend-फंक्शन कब आवश्यक होते हैं? और इसे कैसे बनाया जाए?