рд╕реА ++ рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ

рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдкреЛрд╕реНрдЯ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рд╕реА ++ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рджрд┐рдЦрд╛рдИ рджреА, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╖рдп рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдереЗред

рдпрд╛рдж рд░рдЦрдиреЗ рд╡рд╛рд▓реА рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдСрдкрд░реЗрдЯрд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рд╣реИ, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдСрдкрд░реЗрдЯрд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрдм рдХрд░реЗрдВ рдЬрдм рдпрд╣ рд▓реЗрдЦрди рдХреЛрдб рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗред рд▓реЗрдХрд┐рди, рдЗрддрдирд╛ рдирд╣реАрдВ рдХрд┐ рдЗрд╕рд╕реЗ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЧрдпрд╛ред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХреЛрдб рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рд░ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдЖрдкрдХреЛ рдХрднреА рднреА рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рдЬрд╛рдПрдЧреА, рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗрд╡рд▓ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ / рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред

рдЕрдзрд┐рднрд╛рд░ рд╕рд┐рдВрдЯреИрдХреНрд╕


рдСрдкрд░реЗрдЯрд░ рдУрд╡рд░рд▓реЛрдб рд╕рд┐рдВрдЯреИрдХреНрд╕ рдСрдкрд░реЗрдЯрд░ @ рдирд╛рдордХ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬрд╣рд╛рдВ @ рдСрдкрд░реЗрдЯрд░ рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ (рдЬреИрд╕реЗ +, -, <<, >>)ред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
class Integer { private: int value; public: Integer(int i): value(i) {} const Integer operator+(const Integer& rv) const { return (value + rv.value); } }; 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдСрдкрд░реЗрдЯрд░ рдХреЛ рд╡рд░реНрдЧ рдХреЗ рд╕рджрд╕реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд░реНрдХ рдСрдкрд░реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рджреЛ рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╣реИрдВ: рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдп рдЬреЛ рдХрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓ рд╣реИрдВ, рдпрд╛ рд╕реНрд╡рдпрдВ рдХрдХреНрд╖рд╛ рдХреЗ рдЗрдирд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рдиред рдХреМрди рд╕реА рд╡рд┐рдзрд┐, рдХрд┐рд╕ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ, рд╣рдо рд╡рд┐рд╖рдп рдХреЗ рдЕрдВрдд рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдСрдкрд░реЗрдЯрд░ (рд╕рд╢рд░реНрдд рд╡рд╛рд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ, рдпрд╛ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рддрд░реНрдХ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ (рдпрджрд┐ рдкреНрд░рдХрд╛рд░ рднрд┐рдиреНрди рд╣реИрдВ, рддреЛ рдЖрдк рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ)ред

рдУрд╡рд░рд░реЗрдЯрд┐рдВрдЧ рдпреВрдирд░реА рдСрдкрд░реЗрдЯрд░реНрд╕


рдЖрдЗрдП рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рдЗрдВрдЯреЗрдЧрд░ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрд░ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреА рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рдЙрд╕реА рд╕рдордп, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдХреВрд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдФрд░ рд╡реГрджреНрдзрд┐ рдСрдкрд░реЗрдЯрд░реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ:
 class Integer { private: int value; public: Integer(int i): value(i) {} // + friend const Integer& operator+(const Integer& i); // - friend const Integer operator-(const Integer& i); //  friend const Integer& operator++(Integer& i); //  friend const Integer operator++(Integer& i, int); //  friend const Integer& operator--(Integer& i); //  friend const Integer operator--(Integer& i, int); }; //    . const Integer& operator+(const Integer& i) { return i.value; } const Integer operator-(const Integer& i) { return Integer(-i.value); } //      const Integer& operator++(Integer& i) { i.value++; return i; } //      const Integer operator++(Integer& i, int) { Integer oldValue(i.value); i.value++; return oldValue; } //      const Integer& operator--(Integer& i) { i.value--; return i; } //      const Integer operator--(Integer& i, int) { Integer oldValue(i.value); i.value--; return oldValue; } 

рдЕрдм рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдХрд▓рдХ рдХреИрд╕реЗ рдШрдЯрд╛рд╡ рдФрд░ рд╡реГрджреНрдзрд┐ рдХреЗ рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдЙрдкрд╕рд░реНрдЧ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рддрд╛ рд╣реИред рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рд╡рд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ + i рджреЗрдЦрддрд╛ рд╣реИ, рддреЛ рдСрдкрд░реЗрдЯрд░ ++ (рдП) рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╡рд╣ i ++ рджреЗрдЦрддрд╛ рд╣реИ, рддреЛ рдСрдкрд░реЗрдЯрд░ ++ (a, int) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрддрд┐рднрд╛рд░рд┐рдд рдСрдкрд░реЗрдЯрд░ ++ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдбрдореА рдЗрдВрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░реНрд╕


рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдПрдХ рдХрдерди, рдЬреЛ рдПрдХ рдПрд▓-рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдПрдХ рд╕рд╢рд░реНрдд рд╡рд┐рд╡рд░рдг рдФрд░ рдПрдХ рдХрдерди рдЬреЛ рдПрдХ рдирдпрд╛ рдореВрд▓реНрдп рдмрдирд╛рддрд╛ рд╣реИ, рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ):
 class Integer { private: int value; public: Integer(int i): value(i) {} friend const Integer operator+(const Integer& left, const Integer& right); friend Integer& operator+=(Integer& left, const Integer& right); friend bool operator==(const Integer& left, const Integer& right); }; const Integer operator+(const Integer& left, const Integer& right) { return Integer(left.value + right.value); } Integer& operator+=(Integer& left, const Integer& right) { left.value += right.value; return left; } bool operator==(const Integer& left, const Integer& right) { return left.value == right.value; } 

рдЗрди рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рднрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдкрдиреА рд╕рдорд╛рдирддрд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣рдорд╛рд░реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдФрд░ рдлрд╝реНрд▓реЛрдЯ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рддрд░реНрдХ рдФрд░ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдСрдкрд░реЗрдЯрд░ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред


рд╡рд╛рдкрд╕реА рдорд╛рди рдЕрдиреБрдХреВрд▓рди


рдирдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╕рдордп, рдмрд╛рдЗрдирд░реА рдкреНрд▓рд╕ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
 return Integer(left.value + right.value); 

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ C ++ 11 рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рднреА рддрд░реНрдХ C ++ 98 рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИрдВред
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдб рдФрд░ рдЙрд╕рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ:
 Integer temp(left.value + right.value); return temp; 

рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдлрд┐рд░ рдХреЙрдкреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдЧрд╛, рдФрд░ рдлрд┐рд░, рдЬрдм рд╕реНрдЯреИрдХ рдЕрдирдмрд╛рдЙрдВрдб рд╣реИ, рддреЛ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдкрд╣рд▓реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд╕рдВрдХрд▓рдХ рд╢реБрд░реВ рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕реЗ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЙрд▓ рдХреЛ рдХреЙрдкреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╕рд╣реЗрдЬрдирд╛ рд╣реИред

рд╡рд┐рд╢реЗрд╖ рд╕рдВрдЪрд╛рд▓рдХ


C ++ рдореЗрдВ рдРрд╕реЗ рдСрдкрд░реЗрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдВрдбреЗрдХреНрд╕ рдСрдкрд░реЗрдЯрд░ []ред рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдХрдХреНрд╖рд╛ рдХреЗ рдПрдХ рд╕рджрд╕реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЪреВрдВрдХрд┐ рдЕрдиреБрдХреНрд░рдорд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рд╕рдВрджрд░реНрдн рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреЛрдорд╛ рд╕рдВрдЪрд╛рд▓рдХ

"рд╡рд┐рд╢реЗрд╖" рдСрдкрд░реЗрдЯрд░реЛрдВ рдореЗрдВ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдСрдкрд░реЗрдЯрд░ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕реЗ рдмрдЧрд▓ рдореЗрдВ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЗрд╕ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдПрдХ рд╕рд╛рд░реНрдердХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдУрд╡рд░рд▓реЛрдб рдкрд░ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╣реЗрдмрд░реВрд╕рд░ рдПрдХреНрд╕рд┐рд╕рдкреЙрдб рдиреЗ рдПрдХ рдмрд╛рдд рдХреА ред

рд╕реВрдЪрдХ рдкрд░рд┐рдЪрд╛рд▓рдХ рдСрдкрд░реЗрдЯрд░

рдЗрди рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЕрдзрд┐рднрд╛рд░ рджреЗрдирд╛ рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдСрдкрд░реЗрдЯрд░ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдП рдЧрдП рд╣реИрдВ: рдЗрд╕реЗ рдпрд╛ рддреЛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ (рдпрд╛ рд▓рд┐рдВрдХ) рдпрд╛ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░

рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ "=" рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЕрдЯреВрдЯ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░ рдХреЛ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ "=" рдСрдкрд░реЗрдЯрд░ рдХреЗ рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 class Integer { private: int value; public: Integer(int i): value(i) {} Integer& operator=(const Integer& right) { //   if (this == &right) { return *this; } value = right.value; return *this; } }; 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╕реНрд╡-рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрд╡-рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╣рд╛рдирд┐рд░рд╣рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдерд┐рддрд┐ рд╣рдореЗрд╢рд╛ рдЗрддрдиреА рд╕рд░рд▓ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдбрд╝рд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдирд╛рд╡рд╢реНрдпрдХ рдирдХрд▓ рдкрд░, рдпрд╛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдиреЙрди-рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░

C ++ рдореЗрдВ рдХреБрдЫ рдСрдкрд░реЗрдЯрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдЕрддрд┐рднрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рдСрдкрд░реЗрдЯрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдкреНрд░рдкрддреНрд░ рдХреЗ рд▓рд┐рдП рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢


рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдкрддрд╛ рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ - рдПрдХ рдХреНрд▓рд╛рд╕ рдлрдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдПрдХ рдлреНрд░реЗрдВрдбрд▓реА рдЧреНрд▓реЛрдмрд▓ рдлрдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВред
рд░реЛрдм рдореБрд░реНрд░реЗ рдиреЗ рдЕрдкрдиреА рдкреБрд╕реНрддрдХ C ++ рд░рдгрдиреАрддрд┐рдпрд╛рдБ рдФрд░ рд░рдгрдиреАрддрд┐ рдореЗрдВ, рдСрдкрд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рдкреНрд░рд╕реНрддреБрдд рдХреА:
рдСрдкрд░реЗрдЯрд░
рдЕрдиреБрд╢рдВрд╕рд┐рдд рдкреНрд░рдкрддреНрд░
рд╕рднреА рдПрдХрд░реА рд╕рдВрдЪрд╛рд▓рдХ
рдХрдХреНрд╖рд╛ рд╕рджрд╕реНрдп
= () [] -> -> *
рдЖрд╡рд╢реНрдпрдХ рд╡рд░реНрдЧ рд╕рджрд╕реНрдп
+ = - = / = * = ^ = = = = =% = >> = << =
рдХрдХреНрд╖рд╛ рд╕рджрд╕реНрдп
рдмрд╛рдХреА рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░реНрд╕
рд╡рд░реНрдЧ рдХрд╛ рд╕рджрд╕реНрдп рдирд╣реАрдВ


рдРрд╕рд╛ рдХреНрдпреЛрдВ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреБрдЫ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рд╢реБрд░реВ рдореЗрдВ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ рдХрд┐рд╕реА рдСрдкрд░реЗрдЯрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рдХреЛрдИ рд╢рдмреНрджрд╛рд░реНрдерд┐рдХ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдорд╣рддреНрд╡ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреНрд▓рд╛рд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд╕рд╛рде рд╣реА рдлрд╝рдВрдХреНрд╢рди рдЗрдирд▓рд╛рдЗрди рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрднреА-рдХрднреА рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдПрдВ рд╣рд╛рде рдХреЗ рдСрдкрд░реЗрдВрдб рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рд╕рдВрднрд╡рддрдГ рд╕рдмрд╕реЗ рд╣рдбрд╝рддрд╛рд▓реА рдЙрджрд╛рд╣рд░рдг рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд▓рд┐рдП << рдФрд░ >> рдХрд╛ рдкреБрди: рдирд┐рд░реНрдзрд╛рд░рдг рд╣реИред

рд╕рд╛рд╣рд┐рддреНрдп


рдмреНрд░реВрд╕ рдПрдХреЗрд▓ - рдлрд┐рд▓реЛрд╕реЛрдлреА рдСрдл рд╕реА ++ред рдорд╛рдирдХ C ++ рдХрд╛ рдкрд░рд┐рдЪрдп ред

Source: https://habr.com/ru/post/In132014/


All Articles