A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B_Tutorial%2FOperator_Overloading%2Foverload_bracket_operator</id>
		<title>C++ Tutorial/Operator Overloading/overload bracket operator - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B_Tutorial%2FOperator_Overloading%2Foverload_bracket_operator"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/Operator_Overloading/overload_bracket_operator&amp;action=history"/>
		<updated>2026-04-17T17:48:16Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/Operator_Overloading/overload_bracket_operator&amp;diff=2819&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/Operator_Overloading/overload_bracket_operator&amp;diff=2819&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:17Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/Operator_Overloading/overload_bracket_operator&amp;diff=2820&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/Operator_Overloading/overload_bracket_operator&amp;diff=2820&amp;oldid=prev"/>
				<updated>2010-05-25T10:30:36Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Add a range check to for overloaded [] operator==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;// A safe array example.&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
   &lt;br /&gt;
class MyClass {&lt;br /&gt;
  int a[3];&lt;br /&gt;
public:&lt;br /&gt;
  MyClass(int i, int j, int k) {&lt;br /&gt;
    a[0] = i;&lt;br /&gt;
    a[1] = j;&lt;br /&gt;
    a[2] = k;&lt;br /&gt;
  }&lt;br /&gt;
  int &amp;amp;operator[](int i);&lt;br /&gt;
};&lt;br /&gt;
   &lt;br /&gt;
// Provide range checking for MyClass.&lt;br /&gt;
int &amp;amp;MyClass::operator[](int i)&lt;br /&gt;
{&lt;br /&gt;
  if(i&amp;lt;0 || i&amp;gt; 2) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Boundary Error\n&amp;quot;;&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  return a[i];&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  MyClass ob(1, 2, 3);&lt;br /&gt;
   &lt;br /&gt;
  cout &amp;lt;&amp;lt; ob[1]; // displays 2&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
   &lt;br /&gt;
  ob[1] = 25;    // [] appears on left&lt;br /&gt;
  cout &amp;lt;&amp;lt; ob[1]; // displays 25&lt;br /&gt;
   &lt;br /&gt;
  ob[3] = 44;    // generates runtime error, 3 out-of-range&lt;br /&gt;
   &lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==design the operator[ ]( ) function in such a way that the [ ] can be used on both the left and right sides of an assignment statement.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
   &lt;br /&gt;
class MyClass {&lt;br /&gt;
  int a[3];&lt;br /&gt;
public:&lt;br /&gt;
  MyClass(int i, int j, int k) {&lt;br /&gt;
    a[0] = i;&lt;br /&gt;
    a[1] = j;&lt;br /&gt;
    a[2] = k;&lt;br /&gt;
  }&lt;br /&gt;
  int &amp;amp;operator[](int i) { return a[i]; }&lt;br /&gt;
};&lt;br /&gt;
   &lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  MyClass ob(1, 2, 3);&lt;br /&gt;
   &lt;br /&gt;
  cout &amp;lt;&amp;lt; ob[1]; // displays 2&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
   &lt;br /&gt;
  ob[1] = 25;    // [] on left of =&lt;br /&gt;
   &lt;br /&gt;
  cout &amp;lt;&amp;lt; ob[1]; // now displays 25&lt;br /&gt;
   &lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overload ( ) for Point==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class Point {&lt;br /&gt;
  int x, y;&lt;br /&gt;
public:&lt;br /&gt;
  Point() {}&lt;br /&gt;
  Point(int px, int py) {&lt;br /&gt;
    x = px;&lt;br /&gt;
    y = py;&lt;br /&gt;
  }&lt;br /&gt;
  void show() {&lt;br /&gt;
    cout &amp;lt;&amp;lt; x &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
    cout &amp;lt;&amp;lt; y &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  Point operator+(Point op2);&lt;br /&gt;
  Point operator()(int i, int j);&lt;br /&gt;
};&lt;br /&gt;
// Overload ( ) for Point.&lt;br /&gt;
Point Point::operator()(int i, int j)&lt;br /&gt;
{&lt;br /&gt;
  x = i;&lt;br /&gt;
  y = j;&lt;br /&gt;
  return *this;&lt;br /&gt;
}&lt;br /&gt;
// Overload + for Point.&lt;br /&gt;
Point Point::operator+(Point op2)&lt;br /&gt;
{&lt;br /&gt;
  Point temp;&lt;br /&gt;
  temp.x = op2.x + x;&lt;br /&gt;
  temp.y = op2.y + y;&lt;br /&gt;
  return temp;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  Point ob1(10, 20), ob2(1, 1);&lt;br /&gt;
  ob1.show();&lt;br /&gt;
  ob1(7, 8); // can be executed by itself&lt;br /&gt;
  ob1.show();&lt;br /&gt;
  ob1 = ob2 + ob1(10, 10); // can be used in expressions&lt;br /&gt;
  ob1.show();&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;10 20&lt;br /&gt;
7 8&lt;br /&gt;
11 11&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==overloading ( ) for the loc class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
   &lt;br /&gt;
class loc {&lt;br /&gt;
  int longitude, latitude;&lt;br /&gt;
public:&lt;br /&gt;
  loc() {}&lt;br /&gt;
  loc(int lg, int lt) {&lt;br /&gt;
    longitude = lg;&lt;br /&gt;
    latitude = lt;&lt;br /&gt;
  }&lt;br /&gt;
   &lt;br /&gt;
  void show() {&lt;br /&gt;
    cout &amp;lt;&amp;lt; longitude &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
    cout &amp;lt;&amp;lt; latitude &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
   &lt;br /&gt;
  loc operator+(loc op2);&lt;br /&gt;
  loc operator()(int i, int j);&lt;br /&gt;
};&lt;br /&gt;
   &lt;br /&gt;
// Overload ( ) for loc.&lt;br /&gt;
loc loc::operator()(int i, int j)&lt;br /&gt;
{&lt;br /&gt;
  longitude = i;&lt;br /&gt;
  latitude = j;&lt;br /&gt;
   &lt;br /&gt;
  return *this;&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
// Overload + for loc.&lt;br /&gt;
loc loc::operator+(loc op2)&lt;br /&gt;
{&lt;br /&gt;
  loc temp;&lt;br /&gt;
   &lt;br /&gt;
  temp.longitude = op2.longitude + longitude;&lt;br /&gt;
  temp.latitude = op2.latitude + latitude;&lt;br /&gt;
  return temp;&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  loc ob1(10, 20), ob2(1, 1);&lt;br /&gt;
   &lt;br /&gt;
  ob1.show();&lt;br /&gt;
  ob1(7, 8); // can be executed by itself&lt;br /&gt;
  ob1.show();&lt;br /&gt;
   &lt;br /&gt;
  ob1 = ob2 + ob1(10, 10); // can be used in expressions&lt;br /&gt;
  ob1.show();&lt;br /&gt;
   &lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overload () operator for two values==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include&amp;lt;iostream.h&amp;gt;&lt;br /&gt;
class Sample&lt;br /&gt;
{&lt;br /&gt;
  int A[10][10];&lt;br /&gt;
public:&lt;br /&gt;
       int &amp;amp;operator()(int,int);&lt;br /&gt;
};&lt;br /&gt;
int &amp;amp;Sample::operator()(int x,int y)&lt;br /&gt;
{&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;()&amp;quot;;&lt;br /&gt;
  return A[x][y];&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  Sample a;&lt;br /&gt;
  int i,j;&lt;br /&gt;
  for(i=0;i&amp;lt;10;i++){&lt;br /&gt;
         for(j=0;j&amp;lt;10;j++)&lt;br /&gt;
                 a(i,j)=i+j;&lt;br /&gt;
         for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
                 cout&amp;lt;&amp;lt;a(i,1)&amp;lt;&amp;lt;&amp;quot; &amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
         cout&amp;lt;&amp;lt;endl;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;10 10&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==The overloaded operator[ ]( ) function returns the value of the array as indexed by the value of its parameter.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
   &lt;br /&gt;
class MyClass {&lt;br /&gt;
  int a[3];&lt;br /&gt;
public:&lt;br /&gt;
  MyClass(int i, int j, int k) {&lt;br /&gt;
    a[0] = i;&lt;br /&gt;
    a[1] = j;&lt;br /&gt;
    a[2] = k;&lt;br /&gt;
  }&lt;br /&gt;
  int operator[](int i) { return a[i]; }&lt;br /&gt;
};&lt;br /&gt;
   &lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  MyClass ob(1, 2, 3);&lt;br /&gt;
   &lt;br /&gt;
  cout &amp;lt;&amp;lt; ob[1]; // displays 2&lt;br /&gt;
   &lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>