A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FOverload%2FParenthesis</id>
		<title>C++/Overload/Parenthesis - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FOverload%2FParenthesis"/>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Overload/Parenthesis&amp;action=history"/>
		<updated>2026-04-10T17:26:01Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B/Overload/Parenthesis&amp;diff=2023&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Overload/Parenthesis&amp;diff=2023&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:06Z</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://cppe.ru/index.php?title=C%2B%2B/Overload/Parenthesis&amp;diff=2024&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/Overload/Parenthesis&amp;diff=2024&amp;oldid=prev"/>
				<updated>2010-05-25T10:28:26Z</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;==Demonstrate the function call operator.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class three_d {&lt;br /&gt;
  int x, y, z;&lt;br /&gt;
public:&lt;br /&gt;
  three_d() { x = y = z = 0; }&lt;br /&gt;
  three_d(int i, int j, int k) { x = i; y = j; z = k; }&lt;br /&gt;
  three_d operator()(three_d obj);&lt;br /&gt;
  three_d operator()(int a, int b, int c);&lt;br /&gt;
  friend ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;strm, three_d op);&lt;br /&gt;
};&lt;br /&gt;
three_d three_d::operator()(three_d obj)&lt;br /&gt;
{&lt;br /&gt;
  three_d temp;&lt;br /&gt;
  temp.x = (x + obj.x) / 2;&lt;br /&gt;
  temp.y = (y + obj.y) / 2;&lt;br /&gt;
  temp.z = (z + obj.z) / 2;&lt;br /&gt;
  return temp;&lt;br /&gt;
}&lt;br /&gt;
three_d three_d::operator()(int a, int b, int c)&lt;br /&gt;
{&lt;br /&gt;
  three_d temp;&lt;br /&gt;
  temp.x = x + a;&lt;br /&gt;
  temp.y = y + b;&lt;br /&gt;
  temp.z = z + c;&lt;br /&gt;
  return temp;&lt;br /&gt;
}&lt;br /&gt;
ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;strm, three_d op) {&lt;br /&gt;
  strm &amp;lt;&amp;lt; op.x &amp;lt;&amp;lt; &amp;quot;, &amp;quot; &amp;lt;&amp;lt; op.y &amp;lt;&amp;lt; &amp;quot;, &amp;quot; &amp;lt;&amp;lt; op.z &amp;lt;&amp;lt; endl;&lt;br /&gt;
  return strm;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  three_d objA(1, 2, 3), objB(10, 10, 10), objC;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;This is objA: &amp;quot; &amp;lt;&amp;lt; objA;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;This is objB: &amp;quot; &amp;lt;&amp;lt; objB;&lt;br /&gt;
  objC = objA(objB);&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;objA(objB): &amp;quot; &amp;lt;&amp;lt; objC;&lt;br /&gt;
  objC = objA(10, 20, 30);&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;objA(10, 20, 30): &amp;quot; &amp;lt;&amp;lt; objC;&lt;br /&gt;
  objC = objA(objB(100, 200, 300));&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;objA(objB(100, 200, 300)): &amp;quot; &amp;lt;&amp;lt; objC;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Demo: Overload ().==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class MyClass {&lt;br /&gt;
  int x, y, z; &lt;br /&gt;
public:&lt;br /&gt;
  MyClass() { &lt;br /&gt;
     x = y = z = 0; &lt;br /&gt;
  }&lt;br /&gt;
  MyClass(int i, int j, int k) { &lt;br /&gt;
     x = i; &lt;br /&gt;
     y = j; &lt;br /&gt;
     z = k;&lt;br /&gt;
  }&lt;br /&gt;
  MyClass operator()(int a, int b, int c);&lt;br /&gt;
  void show() ;&lt;br /&gt;
};&lt;br /&gt;
// Overload ().&lt;br /&gt;
MyClass MyClass::operator()(int a, int b, int c)&lt;br /&gt;
{&lt;br /&gt;
  MyClass temp;&lt;br /&gt;
  temp.x = x + a;&lt;br /&gt;
  temp.y = y + b;&lt;br /&gt;
  temp.z = z + c;&lt;br /&gt;
  return temp;&lt;br /&gt;
}&lt;br /&gt;
void MyClass::show()&lt;br /&gt;
{&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;, &amp;quot;;&lt;br /&gt;
  cout &amp;lt;&amp;lt; z &amp;lt;&amp;lt; endl;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  MyClass object1(1, 2, 3), object2;&lt;br /&gt;
  object2 = object1(10, 11, 12); // invoke operator()&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;object1: &amp;quot;;&lt;br /&gt;
  object1.show();&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;object2: &amp;quot;;&lt;br /&gt;
  object2.show();&lt;br /&gt;
  return 0;&lt;br /&gt;
}          &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overload [] to create a generic safe array type.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &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;
template &amp;lt;class T, int len&amp;gt; class safe_array {&lt;br /&gt;
  T ar[len];&lt;br /&gt;
  int length;&lt;br /&gt;
public:&lt;br /&gt;
  safe_array();&lt;br /&gt;
  T &amp;amp;operator[](int i);&lt;br /&gt;
  int getlen() { return length; }&lt;br /&gt;
};&lt;br /&gt;
template &amp;lt;class T, int len&amp;gt; safe_array&amp;lt;T, len&amp;gt;::safe_array() {&lt;br /&gt;
  for(int i=0; i &amp;lt; len; ++i) ar[i] = T();&lt;br /&gt;
  length = len;&lt;br /&gt;
}&lt;br /&gt;
template &amp;lt;class T, int len&amp;gt; T &amp;amp;safe_array&amp;lt;T, len&amp;gt;::operator[](int i)&lt;br /&gt;
{&lt;br /&gt;
  if(i &amp;lt; 0 || i &amp;gt; len-1) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;\nIndex value of &amp;quot; &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &amp;quot; is out-of-bounds.\n&amp;quot;;&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  return ar[i];&lt;br /&gt;
}&lt;br /&gt;
class myclass {&lt;br /&gt;
public:&lt;br /&gt;
  int x;&lt;br /&gt;
  myclass(int i) { x = i; };&lt;br /&gt;
  myclass() { x = -1; }&lt;br /&gt;
};&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  safe_array&amp;lt;int, 10&amp;gt; intArray;&lt;br /&gt;
  safe_array&amp;lt;double, 5&amp;gt; doubleArray;&lt;br /&gt;
  int i;&lt;br /&gt;
  for(i=0; i &amp;lt; intArray.getlen(); ++i) &lt;br /&gt;
     cout &amp;lt;&amp;lt; intArray[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
  for(i=0; i &amp;lt; intArray.getlen(); ++i) &lt;br /&gt;
     intArray[i] = i;&lt;br /&gt;
  for(i=0; i &amp;lt; intArray.getlen(); ++i) &lt;br /&gt;
     cout &amp;lt;&amp;lt; intArray[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
  for(i=0; i &amp;lt; doubleArray.getlen(); ++i) &lt;br /&gt;
     cout &amp;lt;&amp;lt; doubleArray[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
  for(i=0; i &amp;lt; doubleArray.getlen(); ++i) &lt;br /&gt;
     doubleArray[i] = (double) i/3;&lt;br /&gt;
  for(i=0; i &amp;lt; doubleArray.getlen(); ++i) &lt;br /&gt;
     cout &amp;lt;&amp;lt; doubleArray[i] &amp;lt;&amp;lt; endl;&lt;br /&gt;
  safe_array&amp;lt;myclass, 3&amp;gt; classArray; // myclass array of size 3&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Initial values in classArray: &amp;quot;;&lt;br /&gt;
  for(i = 0; i &amp;lt; classArray.getlen(); ++i) cout &amp;lt;&amp;lt; classArray[i].x &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
  cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
  classArray[0].x = 9;&lt;br /&gt;
  classArray[1].x = 9;&lt;br /&gt;
  classArray[2].x = -9;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;New values for classArray: &amp;quot;;&lt;br /&gt;
  for(i = 0; i &amp;lt; classArray.getlen(); ++i) cout &amp;lt;&amp;lt; classArray[i].x &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
  cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
  intArray[12] = 100;&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using the Subscript Operator in Programming a Dynamic Array==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class CMyArray&lt;br /&gt;
{&lt;br /&gt;
private:&lt;br /&gt;
    int* m_pnInternalArray;&lt;br /&gt;
   int m_nNumElements;&lt;br /&gt;
public:&lt;br /&gt;
   CMyArray (int nNumElements);&lt;br /&gt;
   ~CMyArray ();&lt;br /&gt;
    // a subscript operator&lt;br /&gt;
    int&amp;amp; operator [] (int nIndex);&lt;br /&gt;
};&lt;br /&gt;
int&amp;amp; CMyArray::operator [] (int nIndex)&lt;br /&gt;
{&lt;br /&gt;
    return m_pnInternalArray [nIndex];&lt;br /&gt;
}&lt;br /&gt;
CMyArray::CMyArray (int nNumElements)&lt;br /&gt;
{&lt;br /&gt;
    m_pnInternalArray = new int [nNumElements];&lt;br /&gt;
   m_nNumElements = nNumElements;&lt;br /&gt;
}&lt;br /&gt;
CMyArray::~CMyArray ()&lt;br /&gt;
{&lt;br /&gt;
   delete [] m_pnInternalArray;&lt;br /&gt;
}&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
    CMyArray mArray (5);&lt;br /&gt;
    mArray [0] = 25;&lt;br /&gt;
    mArray [1] = 20;&lt;br /&gt;
    mArray [2] = 15;&lt;br /&gt;
    mArray [3] = 10;&lt;br /&gt;
    mArray [4] = 5;&lt;br /&gt;
    for (int nIndex = 0; nIndex &amp;lt; 5; ++ nIndex)&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; mArray [nIndex] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>