मैं ऑपरेटरों को ओवरलोड करने के लिए नया हूं, मैंने कुछ खोज की और this helpful article पाया, मैंने अपना खुद का कोड लिखा जैसे लेखक ने मुझे vector vector::operator*(float, vector) must take either zero or one argument
त्रुटि प्राप्त की।लोडिंग * ऑपरेटर पर - शून्य या एक तर्क लेना चाहिए
यहाँ मेरी कोड है:
class vector
{
public:
float x;
float y;
vector(float, float);
float operator$ (vector, vector);
vector operator* (float, vector);
vector operator* (vector, float);
};
vector::vector(float _x = 0, float _y = 0)
{
x = _x;
y = _y;
}
const float vector::operator$ (const vector &v1, const vector &v2)
{
return (v1.x * v2.x) + (v1.y * v2.y);
}
const vector vector::operator* (const float &m, const vector &v)
{
vector ret_val = v;
ret_val.x *= m;
ret_val.y *= m;
return ret_val;
}
const vector vector::operator* (const vector &v, const float &m)
{
return m * vector;
}
मेरे ऑपरेटिंग सिस्टम kubuntu 12.04
है और मेरी आईडीई dev-C++
शराब खिड़कियों कार्यक्रम लोडर का उपयोग कर लिनक्स पर चल रहा है।
पहली बार मैंने कभी किसी को अधिभार '' $ ..... – 0x499602D2
देखा है मैं वैक्टर में डॉट उत्पाद का प्रतिनिधित्व करने के लिए एक अच्छा ऑपरेटर को खोजने की कोशिश की, कुछ भी नहीं अच्छा मेरे मन में आया था; क्या हम एक नया ऑपरेटर परिभाषित कर सकते हैं जैसा मैंने किया था? –