<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://mit.spbau.ru/sewiki/index.php?action=history&amp;feed=atom&amp;title=%22%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%BD%D0%B8%D0%BA%D0%B8%22</id>
		<title>&quot;Работники&quot; - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://mit.spbau.ru/sewiki/index.php?action=history&amp;feed=atom&amp;title=%22%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%BD%D0%B8%D0%BA%D0%B8%22"/>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%22%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%BD%D0%B8%D0%BA%D0%B8%22&amp;action=history"/>
		<updated>2026-06-22T04:39:43Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%22%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%BD%D0%B8%D0%BA%D0%B8%22&amp;diff=9923&amp;oldid=prev</id>
		<title>Linsky: Новая страница: «&lt;pre&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt;  class Worker { private:         char myName[256]; public:         Worker(const char* name) {                 strcpy(…»</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%22%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%BD%D0%B8%D0%BA%D0%B8%22&amp;diff=9923&amp;oldid=prev"/>
				<updated>2016-12-27T09:58:55Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&amp;lt;pre&amp;gt; #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;string.h&amp;gt;  class Worker { private:         char myName[256]; public:         Worker(const char* name) {                 strcpy(…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class Worker {&lt;br /&gt;
private:&lt;br /&gt;
        char myName[256];&lt;br /&gt;
public:&lt;br /&gt;
        Worker(const char* name) {&lt;br /&gt;
                strcpy(myName, name);&lt;br /&gt;
        }                &lt;br /&gt;
        &lt;br /&gt;
        virtual int getSalary() = 0;&lt;br /&gt;
        &lt;br /&gt;
        virtual ~Worker() {}&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class Developer: public Worker {&lt;br /&gt;
private:&lt;br /&gt;
        int myLevel;&lt;br /&gt;
        int mySalary;&lt;br /&gt;
public:&lt;br /&gt;
        Developer(const char* name, int salary) : Worker(name) {            &lt;br /&gt;
                mySalary = salary;&lt;br /&gt;
                myLevel = 1;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        void setLevel(int level) {&lt;br /&gt;
                myLevel = level;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        virtual int getSalary() {&lt;br /&gt;
                return mySalary * myLevel;&lt;br /&gt;
        }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
class Salesman: public Worker {&lt;br /&gt;
private:&lt;br /&gt;
        double myPercent;&lt;br /&gt;
        int myProductPrice;&lt;br /&gt;
        int myProductQuantity;&lt;br /&gt;
public:&lt;br /&gt;
        Salesman(const char* name, int productPrice, double percent) : Worker(name) {            &lt;br /&gt;
                myProductPrice = productPrice;&lt;br /&gt;
                myPercent = percent;&lt;br /&gt;
                myProductQuantity = 0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        void incQuantity() {&lt;br /&gt;
               myProductQuantity++; &lt;br /&gt;
        }&lt;br /&gt;
                &lt;br /&gt;
        virtual int getSalary() {&lt;br /&gt;
                return myProductPrice * myProductQuantity * myPercent;&lt;br /&gt;
        }&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
class WorkerBase {&lt;br /&gt;
private:     &lt;br /&gt;
        Worker** myWorkers;        &lt;br /&gt;
        int myCapacity;&lt;br /&gt;
        int mySize;&lt;br /&gt;
        &lt;br /&gt;
public:&lt;br /&gt;
        WorkerBase(int capacity) {&lt;br /&gt;
                myCapacity = capacity;&lt;br /&gt;
                mySize = 0;&lt;br /&gt;
                myWorkers = new Worker* [capacity];&lt;br /&gt;
        }        &lt;br /&gt;
 &lt;br /&gt;
        ~WorkerBase() {&lt;br /&gt;
                //?&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
       void add(Worker* w) {&lt;br /&gt;
                if(mySize + 1 &amp;gt; myCapacity) {&lt;br /&gt;
                        // ?&lt;br /&gt;
                }         &lt;br /&gt;
                else {&lt;br /&gt;
                        myWorkers[mySize++] = w;        &lt;br /&gt;
                }&lt;br /&gt;
       }&lt;br /&gt;
       &lt;br /&gt;
       int getTotalSalary() {&lt;br /&gt;
                int salary = 0;&lt;br /&gt;
                for(int i = 0; i &amp;lt; mySize; i++) {&lt;br /&gt;
                        salary += myWorkers[i]-&amp;gt;getSalary();&lt;br /&gt;
                }&lt;br /&gt;
                return salary;&lt;br /&gt;
       } &lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
&lt;br /&gt;
        Developer* dev = new Developer(&amp;quot;vasya&amp;quot;, 2000);&lt;br /&gt;
        dev-&amp;gt;setLevel(1);&lt;br /&gt;
        &lt;br /&gt;
        Developer* senior = new Developer(&amp;quot;nina&amp;quot;, 2000);&lt;br /&gt;
        senior-&amp;gt;setLevel(2);&lt;br /&gt;
        &lt;br /&gt;
        Salesman* sale = new Salesman(&amp;quot;petya&amp;quot;, 1000, 0.1);&lt;br /&gt;
        sale-&amp;gt;incQuantity();&lt;br /&gt;
        sale-&amp;gt;incQuantity();&lt;br /&gt;
        sale-&amp;gt;incQuantity();                &lt;br /&gt;
&lt;br /&gt;
        WorkerBase wb(100);&lt;br /&gt;
        wb.add(dev);&lt;br /&gt;
        wb.add(senior);&lt;br /&gt;
        wb.add(sale);&lt;br /&gt;
        &lt;br /&gt;
        printf(&amp;quot;%d\n&amp;quot;, wb.getTotalSalary());&lt;br /&gt;
&lt;br /&gt;
        return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Linsky</name></author>	</entry>

	</feed>