<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Два студента пишут лабы &#187; ООП</title>
	<atom:link href="http://www.studcode.ru/archiv/tag/oop/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.studcode.ru</link>
	<description>Конспекты лекций, самостоятельные работы по  delphi, с++, php. Курсовые проекты. Все что мы сделали вы можете скачать без проблем!</description>
	<lastBuildDate>Wed, 27 Oct 2010 15:15:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Видимость private И public</title>
		<link>http://www.studcode.ru/archiv/vidimost-private-i-public-2/</link>
		<comments>http://www.studcode.ru/archiv/vidimost-private-i-public-2/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 09:32:52 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[Современное ООП]]></category>
		<category><![CDATA[ООП]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=726</guid>
		<description><![CDATA[Видимость private И public
Концепция struct расширяется в C++ для того, чтобы позволить функ¬циям иметь общие, частные и защищенные члены.  Внутри struct использование ключевого слова private, сопровождаемого двоеточием, ог¬раничивает доступ к членам, которые следуют за этой конструкцией. Члены private могут использоваться только несколькими категориями функций, в привилегии которых входит доступ к этим членам. Эти функции [...]]]></description>
			<content:encoded><![CDATA[<p>Видимость private И public<br />
Концепция struct расширяется в C++ для того, чтобы позволить функ¬циям иметь общие, частные и защищенные члены.  Внутри struct использование ключевого слова private, сопровождаемого двоеточием, ог¬раничивает доступ к членам, которые следуют за этой конструкцией. Члены private могут использоваться только несколькими категориями функций, в привилегии которых входит доступ к этим членам. Эти функции включают функции члены struct. Остальные категории функций, имеющих доступ, обсуждаются позже.<span id="more-726"></span><br />
Пример stack изменен для тою, чтобы скрыть представление данных:</p>
<pre><code>
struct stack
{private:
  char s[max_len] ;
  int top;
  enum {EMPTY = -1, FULL = max_len - 1};
 public:
  void reset() { top = EMPTY; }
  void push(char c) { s[++top] = c; }
  char pop() { return (s[top--]); }
  char top of() { return (s[top]); }
  boolean empty() { return (boolean)(top==EMPTY);}
  boolean full() { return (boolean)(top==FULL); }
};
</code></pre>
<p>Функция main из раздела 4.3 переписывается для проверки тех же опера¬ций.</p>
<pre><code>
main()
{stack s;
 char str[40]={"My name is Don Knuth!"};
 int i=0;
 cout<<sir<<endl;
 s.reset(); // s.top = EMPTY; будет неверно
 while (str[i])
   if(!s.fulK))
     s.push(str[i++]);
 while(!s.empty()) //	печать в обратном порядке
   cout<<s.pop();
 cout<<endl;
}
</code></pre>
<p>Результат вывода этой версии тестовой проптаммы:</p>
<p>My name is Don Knuth! 'htunK noD si eman yM</p>
<p>Как было прокомментировано в состояниях main, доступ к скрытой пере¬менной top является управляемым. Она может изменяться функцией членом reset, но к ней нельзя обращаться непосредственно. Обратите также внима¬ние на то, как переменная s перелается к каждой функции-члену с использо¬ванием формы оператора, члена структуры.<br />
Struct stack имеет private часть, которая содержит описание дан¬ных, и public часть, которая содержит функции-члены, ЛЫПОЛПЯЕОЩИС опе¬рации со стеком. Удобно считать private часть используемой только разработчиком, a public часть - спецификацией интерфейс;-!, которую может использовать клиент. Позже разработчик может изменять private часть, нс влияя при этом на правильность использования клиентом стекового типа.<br />
Сокрытие данных - важный компонент ООП. Он позволяет создавать лете отлаживаемый и сопровождаемый код, потому что ошибки и модифика¬ции локализованы в нем. Программы клиента должны знать только специфи¬кацию интерфейса типа. По правилам хорошего тона члены-данные должны помещаться в private часть структуры, и доступ к ним должен осуществля¬ется с использованием функций-членов. Такая дисциплина доступа гаранти¬рует, что пользователь не сможет вмешаться или неправильно использовать реализованный АТД.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/vidimost-private-i-public-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Основная идея объектно-ориентированного программирования</title>
		<link>http://www.studcode.ru/archiv/1-osnovnaya-ideya-oop/</link>
		<comments>http://www.studcode.ru/archiv/1-osnovnaya-ideya-oop/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 07:42:29 +0000</pubDate>
		<dc:creator>archey</dc:creator>
				<category><![CDATA[Современное ООП]]></category>
		<category><![CDATA[ООП]]></category>

		<guid isPermaLink="false">http://www.studcode.ru/?p=724</guid>
		<description><![CDATA[Основная идея объектно-ориентированного подхода является возможность объединить в структуре не только данные, которые описывают какой то объект или сущность, но имеют встроенные функции, которые определяют взаимодействие классов между собой и с другими частями программы.
При этом функции внутри класса называют методами или функциями членами класса.
При таком подходе поля отвечают за количественные характеристики объекта, а методы за [...]]]></description>
			<content:encoded><![CDATA[<p>Основная идея объектно-ориентированного подхода является возможность объединить в структуре не только данные, которые описывают какой то объект или сущность, но имеют встроенные функции, которые определяют взаимодействие классов между собой и с другими частями программы.<br />
При этом функции внутри класса называют методами или функциями членами класса.<br />
При таком подходе поля отвечают за количественные характеристики объекта, а методы за его качественные характеристики (поведение).<span id="more-724"></span><br />
Для начала посмотрим как расширяется определение структур в С++.</p>
<pre><code>struct Stack
{int Elements[50];
unsigned int top;
void Init(){top=0;}
void Push(int NewElement);
int Pop();
int Top(){return Elements[top];}
void View();
};</code></pre>
<p>Функции принадлежащие классу описываются как обычные функции. Только для того чтобы указать, что эта функция относится именно к этому классу, необходимо заголовок функции записать следующим образом.<br />
type &lt;klass name&gt;::&lt;funct.name&gt;(&lt;peram&gt;)<br />
Функции, члены класса обращаются к полям своего класса без даполнительного указания спецификации структуры. Так же методы обращаются по умолчанию только к экземпляру того класса, для которого они были вызваны.<br />
Определение методов для класса:</p>
<pre><code>void Stack::Push(int NewElement)
{if (top&lt;49)
Elements[top++]=NewElement;
}

int Stack::Pop()
{if (top&gt;0) return Elements[top--];
else {cout&lt;&lt;”Стек пуст \n ”; return 0;}
}

void Stack::View()
{
for(int i=top; i&gt;0; --i)
cout&lt;&lt;Elements[i]&lt;&lt;endl;
}
</code></pre>
<p>После создания типа класса, для его использования необходимо отвести место под экземпляр класса. Как и обычные структуры, классы могут иметь несколько экземпляров.<br />
Теперь приведем пример использования  класса.</p>
<pre><code>
void main()
{Stack A,b;
A.Init();
b.Init();
A.Push(5);
b.Push(10);
b.Push(45);
A.Push(3);
cout&lt;&lt;b.Pop()&lt;&lt;endl;
cout&lt;&lt;endl;
A.View();
cout&lt;&lt;endl;
b.View();
}</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.studcode.ru/archiv/1-osnovnaya-ideya-oop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

