
рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЬреЛрдбрд╝реЗ рдФрд░ рдЯреБрдкрд▓реНрд╕ (рдЬреЛрдбрд╝реА рдФрд░ рдЯрдкрд▓) рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ - рдЙрдирдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрд╕рдЯреАрдПрд▓, рдмреВрд╕реНрдЯ (рдФрд░ рд╢рд╛рдпрдж рдХрд╣реАрдВ рдФрд░) рдореЗрдВ рд╣реИред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ - рдпреЗ рдРрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдХрдИ рдореВрд▓реНрдпреЛрдВ (рдПрдХ рдЬреЛрдбрд╝реЗ - рдХреЗрд╡рд▓ 2, рдЯреНрдпреВрдкрд▓ - рдПрдХ рдмрд╣реБрдд) рдХреЛ рдПрдХ рд╕рд╛рде рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
MSDN рд╕реЗ рдЙрджрд╛рд╣рд░рдг:
pair <int, double> p1 ( 10, 1.1e-2 ); pair <int, double> p2 = make_pair ( 10, 2.22e-1 ); cout << "The pair p1 is: ( " << p1.first << ", " << p1.second << " )." << endl; cout << "The pair p2 is: ( " << p2.first << ", " << p2.second << " )." << endl;
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд┐рдЪрд╛рд░ рдЖрдХрд░реНрд╖рдХ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐:
- рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЖрдпрд╛рдо рдХреЗ рдХрдИ рд╡реИрдХреНрдЯрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЙрдирдХреЗ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛, рдЬреЛрдбрд╝реЗ \ tuples рдХреЗ рдХреЗрд╡рд▓ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд╛рдкрд╕ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдмрд┐рдирд╛ рд╕рдВрдХреЗрдд рдпрд╛ рдмрд╛рд╣рд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдмреЗрд╡рдХреВрдл рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рдХрдИ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ)
- рдЖрдк 2-3 рдлрд╝реАрд▓реНрдб рдХреА рдЫреЛрдЯреА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрдирд╛рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ (рдХрдо рдХреЛрдб рдмреЗрд╣рддрд░ рд╣реИ)ред
рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд▓ рдХрд╛ рдПрдХ рд╕реНрдпрд╛рд╣ рдкрдХреНрд╖ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рджрдЧреА рдЪреЛрд░реА рд╕реЗ рднреА рдмрджрддрд░ рд╣реИред рдЬреЛрдбрд╝реЗ рдФрд░ tuples рд╕рд┐рд░реНрдл рдпрд╣реА рдорд╛рдорд▓рд╛ рд╣реИред рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдЗрдП рдХреАрдордд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВред
рдПрдХ рдЬреЛрдбрд╝реА рдпрд╛ рдЯрдкрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдПрдХ рд░рд╣рд╕реНрдп рд╣реИ
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдРрд╕реЗ рд╕рдорд╛рд░реЛрд╣ рдХреА рдШреЛрд╖рдгрд╛:
pair<string, string> GetInfo( int personId );
рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рд╡рд╣ рд╡рд╛рдкрд╕ рд▓реМрдЯрддреА рд╣реИ? рдкрд╣рд▓рд╛ рдФрд░ рдЖрдЦрд┐рд░реА рдирд╛рдо? рдФрд░ рдХрд╣рд╛рдБ рдорд┐рд▓рд╛? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдкрд╛рд╕рдкреЛрд░реНрдЯ рдирдВрдмрд░ рдФрд░ рдЯреИрдХреНрд╕ рдХреЛрдб? рдпрд╛ рд╢рд╛рдпрдж рдкреВрд░рд╛ рдирд╛рдо рдФрд░ рдлреЛрди рдирдВрдмрд░ред рдпрд╛ рдЕрд╕рд▓реА рдирд╛рдо рдФрд░ рдЙрдкрдирд╛рдоред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдХрд╣реАрдВ рднреА рдлрд╝рдВрдХреНрд╢рди рдШреЛрд╖рдгрд╛ рдореЗрдВ рдпрд╣ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд▓реМрдЯреЗ рдЬреЛрдбрд╝реЗ рдореЗрдВ рдХреНрдпрд╛ рдирд┐рд╣рд┐рдд рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, рдЕрдм рдЖрдк рдЗрд╕реЗ рдпрд╛рдж рд░рдЦреЗрдВред рдФрд░ рдПрдХ рд╕рд╛рд▓ рдореЗрдВ рдпрд╛рдж рд╣реИ? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЬреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ, рдЙрд╕реЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХреНрд░реЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ - рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреВрд░реЗ рдУрдУрдкреА рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдкреНрд░рддрд┐рд░реВрдкрддрд╛, рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдФрд░ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
struct Person { string Name; string Surname; } Person GetInfo( int personId );
рд╕рдм рдХреБрдЫ рдХреНрд░рд┐рд╕реНрдЯрд▓ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдПрдХ рдЬреЛрдбрд╝реА рдпрд╛ рдЯрдкрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдХреНрд░рдо рдПрдХ рд░рд╣рд╕реНрдп рд╣реИ
рдареАрдХ рд╣реИ, рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╕реЛрдЪрд╛ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛:
pair<string, string> GetNameAndSurname( int personId );
рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡рд╣ рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдирд╛рдо рдФрд░ рдЙрдкрдирд╛рдо рд▓реМрдЯрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рд╕рд╡рд╛рд▓ рд╣реИ - рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ? рдпрд╣ рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд░рдо рдпреБрдЧреНрдорд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдкрдХреЗ рд▓рд┐рдП рдмреБрд░реА рдЦрдмрд░ рд╣реИред рдЖрдк рдПрдХ рдРрд╕реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд▓реЛрдЧ рдирд╛рдореЛрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд░рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рд░реАрдЦреЛрдВ рдФрд░ рд╕рдордп рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд╡рд░реВрдкреЛрдВ, рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдмрд╣реБрдореБрдЦреА рдпрд╛рддрд╛рдпрд╛рдд рдХреЗ рд╕рд╛рде рд╕рдбрд╝рдХреЛрдВ рдкрд░ рдбреНрд░рд╛рдЗрд╡ рдХрд░рддреЗ рд╣реИрдВ, рдЖрджрд┐ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕рдВрднрд╡ рд▓рдЧрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЬреЛрдбрд╝реА рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреБрдЫ рднреА рд╕рд╛рдмрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдорд░реНрдлреА рдХреЗ рдХрд╛рдиреВрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╣рддрд╛ рд╣реИ, "
рдЕрдЧрд░ рдХрд┐рд╕реА рдЪреАрдЬ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рддреЛ рдпрд╣ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдмрд╕реЗ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рдПрдЧреА ред"
рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕рдВрд░рдЪрдирд╛ (рд╡рд░реНрдЧ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдХреЛрдб рдХреА рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИред
рдЧрд░реАрдм рдХреА рд╡реНрдпрд╛рдкрдХрддрд╛
рд╣рдо рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ - рдпрджрд┐ рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рд╣рд╛рдВ, рд╣рдо рдПрдХ рдЬреЛрдбрд╝реА рдХреЛ рдЯреВрдкреНрд▓реЗ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдмреЗрддреБрдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
tuple<string, string, int> GetNameAndSurnameAndBirthday( int personId );
рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдмреБрд░рд╛ рд╕рдкрдирд╛ рд╣реИ! рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рд╕рд╣реА рдлрд╝реАрд▓реНрдб рдПрдХреНрд╕реЗрд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣реЙрд░рд░ред
рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛
рдХрднреА-рдХрднреА рдореВрд▓реНрдпреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдлрд╝реАрд▓реНрдб рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрд░рдЪрдирд╛ рдпрд╛ рдХрдХреНрд╖рд╛ рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ (рдПрдХ рдЖрдЗрд╕реЗрдЯ рдЪрд░ рдмрдирд╛рдПрдВ рдпрд╛ рдлрд╝реАрд▓реНрдб рдЪреЗрдХ рд╡рд┐рдзрд┐ рд▓рд┐рдЦреЗрдВ), рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХ рдЬреЛрдбрд╝реА рдпрд╛ рдЯрдкрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдЯ рдореЗрдВ рд╕рднреА рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ рд╡реЗ рдорд╛рдиреНрдп рд╣реИрдВред рдирддреАрдЬрддрди, рдЖрдкрдХреЛ "рдпрджрд┐ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ -1 рд╣реИ, рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ" рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ рд╕рдордЭреМрддреЛрдВ рд╕реЗ рдкрд░реЗрд╢рд╛рди рд╣реЛрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдкрд╖реНрдЯ, рд╡рд┐рд╕реНрдореГрдд рдФрд░ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИрдВред
рд╕рддреНрдпрд╛рдкрди рдЬрд╛рдБрдЪ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдирд╣реАрдВ
рдЖрдЗрдП рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рдХрд┐рд╕реА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рддрд╛рдкрдорд╛рди рд░реЗрдВрдЬ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ:
pair<int, int> SomeDevice::GetCelsiusTemperatureRange() { ... return make_pair( -300, +30 ); }
1 рд╡рд░реНрдг рдХреЗ рдЯрд╛рдЗрдкреЛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдлрд╝рдВрдХреНрд╢рди (рдмрд╣реБрдд рдЕрдзрд┐рдХ рджрдмрд╛рд╡ рдбрд╛рд▓реЗ рдмрд┐рдирд╛) рдиреЗ рднреМрддрд┐рдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреА рд╕реАрдорд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛, рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдХрд┐ рдЙрдкрдХрд░рдг -300 рд╕реЗрд▓реНрд╕рд┐рдпрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рддрд╛рдкрдорд╛рди рдХреА рд╡реИрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдпрд╛ рддреЛ рдЬреЛрдбрд╝реА рд╡рд╕реНрддреБ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдХреНрд╖рдг рдореЗрдВ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдХреНрд╖рдг рдореЗрдВ рдХреЛрдИ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдирд╣реАрдВ рд╣реИред
рдЪрд╛рд╣реЗ рд╡рд╣ рдорд╛рдорд▓рд╛ рд╣реЛ, рдпрджрд┐ рддрд╛рдкрдорд╛рди рд░реЗрдВрдЬ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрдм рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдПрдХ рдЕрдорд╛рдиреНрдп рдореВрд▓реНрдп рдкрдХрдбрд╝рд╛ рдЬрд╛рдП рдФрд░ рдЙрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрдВ (рдорд╛рдиреНрдп рдорд╛рди рдХреЗ рд╕рд╛рде рдкреНрд░рд╡реЗрд╢, рдЕрдкрд╡рд╛рдж, рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди, рдЖрджрд┐)
struct TemperatureRange { int minTemp; int maxTemp; TemperatureRange( int min, int max ) { assert( min <= max ); assert( min >= -273 ); minTemp = min; maxTemp = max; } } TemperatureRange SomeDevice::GetCelsiusTemperatureRange() { ... return TemperatureRange( -300, +30 );
counterexample
рд▓реЗрдЦ рдХреЗ рд╢реАрд░реНрд╖рдХ рдореЗрдВ "
рд╕рдмрд╕реЗ рдЕрдХреНрд╕рд░ рдмреБрд░рд╛ " рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдореБрдЭреЗ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрднреА-рдХрднреА рдЬреЛрдбрд╝реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЧреЗрдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ, рджреЛ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЗрд▓ рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЗ рджреМрд░рд╛рди, рдЖрдкрдХреЛ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдореВрд▓реНрдпреЛрдВ (рдЗрдВрдЯ рд░реЗрдВрдЬ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛) рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд╛рд░реНрдо рдХреЗ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
pair<int, int> GetTwoRandomNumbers();
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЦрд░рд╛рдм рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ? рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
- рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдХреЛрдИ рдЕрд╕реНрдкрд╖реНрдЯ рд╡реНрдпрд╛рдЦреНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВред
- рдЖрджреЗрд╢ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ред рдкрд╣рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рд╕рдВрдЦреНрдпрд╛ рдХреНрдпрд╛ рд╣реИ, рдлрд┐рд░ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд - рдбреНрд░рдо рдкрд░ред
- рд╣рдорд╛рд░рд╛ рдЦреЗрд▓ рдХреЗрд╡рд▓ рджреЛ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдФрд░ рдХрднреА рднреА (рдбрд┐рдЬрд╛рдЗрди рджреНрд╡рд╛рд░рд╛) рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ - рдЖрдкрдХреЛ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
- рджреЛрдиреЛрдВ рдореВрд▓реНрдп рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдЕрд╕рдВрднрд╡ рд╣реИред
- рдорд╛рдиреНрдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрдВрдЯ рдХреА рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣рдореЗрдВ рд╕реВрдЯ рдХрд░рддреА рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдХ рдЬреЛрдбрд╝реА рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ (рдХрдо рдХреЛрдб) рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ, рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрд╣рддрд░ рдЖрдЙрдЯ-рдкреИрд░рд╛рдореАрдЯрд░ (рд╡реИрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ) рдФрд░ рдПрдХ рд╕рд░рдгреА рдпрд╛ рд╡реЗрдХреНрдЯрд░ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ (рдЬреЛ рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИ)ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдкрд╛рд╕ рдЬреАрд╡рди рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрджрд┐ рдЖрдк рд╕реНрдкрд╖реНрдЯ, рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЬреЛрдбрд╝реЗ рдпрд╛ рдЯреБрдкрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдорд╛рдорд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЫреЛрдЯреА рдХрдХреНрд╖рд╛рдУрдВ рдпрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд▓рд╛рдн рджреЗрдЧрд╛ред