[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

ntu-kpi.comp.programming

[?] ???????????? ?? ?++ ? ?????-????

Brigadir

3/30/2005 9:17:00 PM

OOO ?OIAIAIA A¦IOUA ?¦IIOI?OOEA...
EIOI?A ? EIAOE:
class A
{
public:
static A *List[MAX_A];
static int Count;
int Index;
A();
~A();
... // ¦IU¦ IAOIAE ¦ AAI¦
};
A::A()
{
for (int i=0; i<MAX_A; i++)
if (List[i] == NULL)
{
List[i] = this;
Index = i;
break;
}
Count ++;
}
A::~A()
{
Count--;
List[Index] = NULL;
}

class B :public A
{
// OOO ?OA AIAIIC¦?II O¦IOEE UAI¦OOO a ?EUAII ÷
};
B::B()
:A()
{...} // ¦ OOO OIOA...

OA?AO ?INOIA, IAYI N "¦U?OAYA?ON" U List'AIE:
EIOAI EIIOOOOEOIO AIAA? IA?EO ? EIIOAEIAO. ?IO¦I AAE EIIOAEIAO
IAOIAIN?OOON ? ?OICOAI¦. oIAOI ?O¦ IA?EOE EIAOO A AIOOO?I¦ U A::List[],
A OEAUAOAI¦ IA IA?EOE B I¦OONOOON ? a::List[] i B::List[]
IA?OEEIAA, NEUI a - O?AOEIE, A ÷ - ?OAUEE, OI ?O¦ IA?EOE a i B AEEAAOO,
A IA?EOE ÷ YA I¦OAAOO (IAA¦AOO ¦AAN UOIUOI¦IA)

OAE IO...
IAI¦ ?ICIOO UAA?OOON YI Index U EIAOO a UAI¦IA?OOON ? EIAO¦ ÷ (IA
OAEOIIE OOAOE?IEE AAIEE IA UIAA)

?IOAAOOA ?IU, EOI UIA?, NE OOO AOOE, AAI NE¦ ? AIOOAOIAOE?I¦ ?AO¦AIOE
AIN EIIOAEIAO¦?
5 Answers

WebAngel

3/31/2005 7:13:00 AM

0

?I?OIAOE OEAUU?AOO N?II EIE OAAIAOO EIAAEO ?OE?AOIUI
?IEIAO IAIAOOO ?EAEIIOOE OAOUEOEIAOO IAIIICI, EAE OU OOA UAIAOEI :)

--
Using Opera''s revolutionary e-mail client: http://www.ope...

Anton N. Breusov

3/31/2005 7:50:00 AM

0

Konnichi wa, Undead <vuiko_vovan@viii.ntu-kpi.kiev.ua>:
> class A
> {
> public:
> static A *List[MAX_A];
> static int Count;
> int Index;
> A();
> ~A();
> ... // ?IU? IAOIAE ? AAI?
> };
uA I?AIO OAAEEI EOEIA?AIEAI (E OI, AOOO ?AOEAIOU) ?OAIE?IUA
AAIIUA -- bad style.

> OA?AO ?INOIA, IAYI N "?U?OAYA?ON" U List''AIE:
> EIOAI EIIOOOOEOIO AIAA? IA?EO ? EIIOAEIAO. ?IO?I AAE EIIOAEIAO
> IAOIAIN?OOON ? ?OICOAI?. oIAOI ?O? IA?EOE EIAOO A AIOOO?I? U A::List[],
> A OEAUAOAI? IA IA?EOE B I?OONOOON ? a::List[] i B::List[]
> IA?OEEIAA, NEUI a - O?AOEIE, A &#247; - ?OAUEE, OI ?O? IA?EOE a i B AEEAAOO,
> A IA?EOE &#247; YA I?OAAOO (IAA?AOO ?AAN UOIUOI?IA)
eAAN ?IINOIA, IA OI?OAI ?IINOII ?OI OU EI?AUO IO IA? ?IIO?EOO E EAE.

> OAE IO... IAI? ?ICIOO UAA?OOON YI Index U EIAOO a UAI?IA?OOON ? EIAO? &#247;
> (IA OAEOIIE OOAOE?IEE AAIEE IA UIAA)
iA?N?E AAIIUA protected EION AU, AIOOO?AEON N?II ?AOAU O?AAE?EEAOIO EIAOOA
(A::Index, B::Index).

> ?IOAAOOA ?IU, EOI UIA?, NE OOO AOOE, AAI NE? ? AIOOAOIAOE?I? ?AO?AIOE
> AIN EIIOAEIAO??
uA?AOOE IAIAAOAO-?AAOEEO, EIOIOUE AOAAO UOEIE EIAOOAIE O?OA?INOO
E ACI ?OIEAENIE AIAA?INOO E OAAINOO EU EIIOAEIAOI?.

--
Anton N. Breusov ''Antonz''.
Well, you know our Russian traditions... No vodka - no movies.

Marchello

3/31/2005 10:10:00 AM

0

> &#208;&#207;&#210;&#193;&#196;&#216;&#212;&#197; &#208;&#204;&#218;, &#200;&#212;&#207; &#218;&#206;&#193;&#164;, &#209;&#203; &#212;&#213;&#212; &#194;&#213;&#212;&#201;, &#193;&#194;&#207; &#209;&#203;&#166; &#164; &#193;&#204;&#216;&#212;&#197;&#210;&#206;&#193;&#212;&#201;&#215;&#206;&#166; &#215;&#193;&#210;&#166;&#193;&#206;&#212;&#201;
> &#196;&#204;&#209; &#203;&#207;&#206;&#212;&#197;&#202;&#206;&#197;&#210;&#166;&#215;

&#237;&#207;&#214;&#197;&#212; &#220;&#212;&#207; &#206;&#197; &#211;&#207;&#215;&#211;&#197;&#205; &#212;&#207;, &#222;&#212;&#207; &#206;&#213;&#214;&#206;&#207;, &#206;&#207; &#205;&#207;&#214;&#206;&#207; &#212;&#193;&#203;&#207;&#202; &#215;&#193;&#210;&#201;&#193;&#206;&#212;:

&#233;&#205;&#197;&#197;&#205; &#193;&#194;&#211;&#212;&#210;&#193;&#203;&#212;&#206;&#217;&#202; &#194;&#193;&#218;&#207;&#215;&#217;&#202; &#203;&#204;&#193;&#211;&#211;:

class CBase
{
public:
virtual void F1() = 0;
virtaul void F2() = 0;
};

&#250;&#193;&#212;&#197;&#205; &#201;&#205;&#197;&#197;&#205; &#211;&#215;&#209;&#218;&#193;&#206;&#206;&#217;&#202; &#211;&#208;&#201;&#211;&#207;&#203; &#211;&#207;&#196;&#197;&#210;&#214;&#193;&#221;&#201;&#202; &#213;&#203;&#193;&#218;&#193;&#212;&#197;&#204;&#201; &#206;&#193; &#208;&#210;&#207;&#201;&#218;&#215;&#207;&#196;&#206;&#217;&#197; &#203;&#204;&#193;&#211;&#211;&#217;:

struct TLinkedNode
{
CBase *CurrentObj;
TLinkedNode *Next;

TLinkedNode(CMObject *NextObj)
{
Next = NULL;
CurrentObj = NextObj;
}
};

&#208;&#207;&#212;&#207;&#205; &#215;&#211;&#197; &#203;&#204;&#193;&#211;&#211;&#217; &#215; &#208;&#210;&#207;&#199;&#197; &#206;&#193;&#211;&#204;&#197;&#196;&#213;&#192;&#212;&#211;&#209; &#207;&#212; CBase:

class COther : CBase
{
public:
COther()
{
AddToList(this);
}

virtual void F1() {...};
virtual void F2() {...};
};

void AddToList(CBase *Obj) - &#210;&#197;&#203;&#213;&#210;&#211;&#201;&#215;&#206;&#207; &#218;&#193;&#208;&#207;&#204;&#206;&#209;&#197;&#212; &#211;&#208;&#201;&#211;&#207;&#203;.

&#225; &#208;&#207;&#212;&#207;&#205; &#222;&#197;&#210;&#197;&#218; &#220;&#212;&#207;&#212; &#211;&#208;&#201;&#211;&#207;&#203; &#205;&#207;&#214;&#206;&#207; &#210;&#193;&#194;&#207;&#212;&#193;&#212;&#216; &#211; &#220;&#212;&#201;&#205;&#201; &#205;&#197;&#212;&#207;&#196;&#193;&#205;&#201; (F1 &#201; F2) &#215;&#211;&#197;&#200;
&#203;&#204;&#193;&#211;&#211;&#207;&#215;.
&#238;&#213; &#212;&#201;&#208;&#193; &#212;&#193;&#203;:

TLinkedNode *List; // &#194;&#213;&#196;&#197;&#205; &#211;&#222;&#201;&#212;&#193;&#212;&#216; &#222;&#212;&#207; &#211;&#208;&#201;&#211;&#207;&#203; &#218;&#193;&#208;&#207;&#204;&#206;&#197;&#206;.

void ExecList(CBase *Node)
{
if (Node!=NULL)
{
Node->CurrentObj->F1();
Node->CurrentObj->F2();

ExecList(Node->Next);
}
}

ExecList(List);

(&#237;&#207;&#214;&#197;&#212; &#209; &#211;&#196;&#197;&#211;&#216; &#207;&#219;&#201;&#194;&#207;&#203; &#205;&#197;&#204;&#203;&#201;&#200; &#208;&#207;&#196;&#207;&#208;&#213;&#211;&#203;&#193;&#204;, &#206;&#207; &#201;&#196;&#197;&#209;, &#209; &#196;&#213;&#205;&#193;&#192;, &#209;&#211;&#206;&#193;).

Brigadir

3/31/2005 4:37:00 PM

0

Anton N. Breusov ?EUAO:

> uA I?AIO OAAEEI EOEIA?AIEAI (E OI, AOOO ?AOEAIOU) ?OAIE?IUA
> AAIIUA -- bad style.

.... ?OEEIAEOOON ?EUE?AOE ?EYAI?EOAI¦ AAI¦ U IA?EO¦?, A ?EOAOE AIN
EIOIICI EIAOO Get/Set OOIEE ??AAII, AIA ? IAEAOOIOIIO ?OA, YI IIOIA,
?IEI?AA :))


> eAAN ?IINOIA, IA OI?OAI ?IINOII ?OI OU EI?AUO IO IA? ?IIO?EOO E EAE.
IO... IA?OEEIAA IA?II MAX_A O?AOEIIE (a) ¦ U IEE MAX_B ?OAUIE (&#247;), OIA¦
IAOIA?EE ?OEOIAIOICI AEEIO:
for (int i=0; i<MAX_A; i++)
if (A::List[i] != NULL) A::List[i]->Dyhaty();
for (int i=0; i<MAX_B; i++)
if (B::List[i] != NULL) B::List[i]->Fly();

(? ¦AAAI¦ ?I?EIII AOOE A::List[i]->Process() i B::List[i]->Process(),
Process() ?EUIA?AIA AIN EIOIICI EIAOO)

> iA?N?E AAIIUA protected EION AU, AIOOO?AEON N?II ?AOAU O?AAE?EEAOIO EIAOOA
> (A::Index, B::Index).

N ?IAOIO?A?, IIOA IAUE?AOE EIOAI Index ¦ List[] IOIAIE?I (O¦?A IndexA,
ListA...)

> uA?AOOE IAIAAOAO-?AAOEEO, EIOIOUE AOAAO UOEIE EIAOOAIE O?OA?INOO
> E ACI ?OIEAENIE AIAA?INOO E OAAINOO EU EIIOAEIAOI?.

??? OOO N IA AICAINA, IIOIA AAOAIOI¦UA?
?UACAI¦-OI IAOA AEE List''¦?, Process''¦? - O?OIOOEOE OIA¦ OEOON, YIA
IA?OEEIAA, EIIE AOAO OO?IOA?AOE IA?EOE, IA AIAA?AOE EIOAI ?OO?IO ?
EIIOAEIAOE...

Oleg Grodzevich

3/31/2005 7:16:00 PM

0

Undead <vuiko_vovan@viii.ntu-kpi.kiev.ua> wrote:
>> &#233;&#196;&#197;&#209; &#208;&#207;&#206;&#209;&#212;&#206;&#193;, &#206;&#197; &#211;&#207;&#215;&#211;&#197;&#205; &#208;&#207;&#206;&#209;&#212;&#206;&#207; &#222;&#212;&#207; &#212;&#217; &#200;&#207;&#222;&#197;&#219;&#216; &#207;&#212; &#206;&#197;&#163; &#208;&#207;&#204;&#213;&#222;&#201;&#212;&#216; &#201; &#203;&#193;&#203;.
> &#206;&#213;... &#206;&#193;&#208;&#210;&#201;&#203;&#204;&#193;&#196; &#205;&#193;&#164;&#205;&#207; MAX_A &#212;&#215;&#193;&#210;&#201;&#206;&#207;&#203; (&#225;) &#166; &#218; &#206;&#201;&#200; MAX_B &#208;&#212;&#193;&#219;&#207;&#203; (&#247;), &#212;&#207;&#196;&#166;
> &#207;&#194;&#210;&#207;&#194;&#222;&#201;&#203; &#208;&#210;&#201;&#210;&#207;&#196;&#206;&#216;&#207;&#199;&#207; &#195;&#201;&#203;&#204;&#213;:
> for (int i=0; i<MAX_A; i++)
> if (A::List[i] != NULL) A::List[i]->Dyhaty();
> for (int i=0; i<MAX_B; i++)
> if (B::List[i] != NULL) B::List[i]->Fly();
>
> (&#215; &#166;&#196;&#197;&#193;&#204;&#166; &#208;&#207;&#215;&#201;&#206;&#206;&#207; &#194;&#213;&#212;&#201; A::List[i]->Process() i B::List[i]->Process(),
> Process() &#215;&#201;&#218;&#206;&#193;&#222;&#197;&#206;&#193; &#196;&#204;&#209; &#203;&#207;&#214;&#206;&#207;&#199;&#207; &#203;&#204;&#193;&#211;&#213;)

&#244;&#193;&#203; &#218;&#193;&#222;&#197;&#205; &#212;&#207;&#199;&#196;&#193; &#196;&#197;&#204;&#193;&#212;&#216; &#212;&#193;&#203;&#201;&#197; &#214;&#213;&#212;&#203;&#201;&#197; &#218;&#193;&#205;&#207;&#210;&#207;&#222;&#203;&#201; &#211;&#207; &#211;&#212;&#193;&#212;&#201;&#222;&#197;&#211;&#203;&#201;&#205;&#201; &#222;&#204;&#197;&#206;&#193;&#205;&#201;?
&#245; &#212;&#197;&#194;&#209; &#220;&#205;&#213;&#204;&#209;&#212;&#207;&#210; - &#211;&#196;&#197;&#204;&#193;&#202; &#207;&#194;&#221;&#201;&#202; &#203;&#204;&#193;&#211;&#211; (&#207;&#206; &#214;&#197; &#194;&#213;&#196;&#197;&#212; &#215;&#217;&#211;&#212;&#213;&#208;&#193;&#212;&#216; &#215; &#210;&#207;&#204;&#201;
&#198;&#193;&#194;&#210;&#201;&#203;&#201;).

class emulator {
std::list<object*> objects ;
public:
void tick () ;
};

&#199;&#196;&#197; object &#194;&#193;&#218;&#207;&#215;&#217;&#202; &#203;&#204;&#193;&#211;&#211; &#215;&#211;&#197;&#200; &#207;&#194;&#223;&#197;&#203;&#212;&#207;&#215; &#215; &#212;&#215;&#207;&#197;&#205; &#205;&#201;&#210;&#197;.
class object {
public:
virtual ~object () {}
virtual void process () = 0 ; // &#208;&#210;&#207;&#199;&#206;&#193;&#212;&#216; &#219;&#193;&#199; &#220;&#205;&#213;&#204;&#209;&#195;&#201;&#201; &#196;&#204;&#209; &#207;&#194;&#223;&#197;&#203;&#212;&#193;
};

&#240;&#207;&#212;&#207;&#205; &#200;&#207;&#222;&#197;&#219;&#216; &#222;&#212;&#207;&#194;&#217; &#203;&#193;&#203;&#201;&#197;-&#212;&#207; &#207;&#194;&#223;&#197;&#203;&#212;&#217; &#196;&#217;&#219;&#193;&#204;&#201;, &#211;&#196;&#197;&#204;&#193;&#202; &#201;&#206;&#212;&#197;&#210;&#198;&#197;&#202;&#211;:

class breathable {
protected: breathable () {}
public:
virtual ~breathable () {}
virtual void breath () = 0 ;
};

&#229;&#211;&#204;&#201; &#213; &#212;&#197;&#194;&#209; &#215;&#211;&#197; &#207;&#194;&#223;&#197;&#203;&#212;&#217; &#196;&#217;&#219;&#193;&#212; &#207;&#196;&#201;&#206;&#193;&#203;&#207;&#215;&#207;, &#212;&#207; &#205;&#207;&#214;&#197;&#219;&#216; breath() &#207;&#208;&#210;&#197;&#196;&#197;&#204;&#201;&#212;&#216;
&#208;&#210;&#209;&#205;&#207; &#196;&#204;&#209; breathable &#201; &#208;&#210;&#201; &#214;&#197;&#204;&#193;&#206;&#201;&#201; &#208;&#197;&#210;&#197;&#199;&#210;&#213;&#214;&#193;&#212;&#216; &#196;&#204;&#209; &#212;&#197;&#200; &#203;&#212;&#207; &#206;&#197; &#203;&#193;&#203; &#215;&#211;&#197;.
&#244;&#193;&#203; &#214;&#197; &#205;&#207;&#214;&#206;&#207; &#196;&#193;&#212;&#216; &#215;&#207;&#218;&#205;&#207;&#214;&#206;&#207;&#211;&#212;&#216; &#207;&#194;&#223;&#197;&#203;&#212;&#193;&#205; &#204;&#197;&#212;&#193;&#212;&#216;, &#208;&#210;&#217;&#199;&#193;&#212;&#216; &#201; &#203;&#213;&#215;&#217;&#210;&#203;&#193;&#212;&#216;&#211;&#209;.
&#240;&#212;&#201;&#195;&#217;?

class bird : public object, public breathable {
public:
void breath () ; // &#208;&#207; &#214;&#197;&#204;&#193;&#206;&#201;&#192;
void process () ;
};

&#247; .cpp &#198;&#193;&#202;&#204;&#193;&#200;:

void bird::proces ()
{
// &#208;&#213;&#211;&#212;&#216; &#208;&#212;&#201;&#195;&#193; &#211;&#193;&#205;&#193; &#210;&#197;&#219;&#193;&#197;&#212; &#203;&#207;&#199;&#196;&#193; &#197;&#202; &#206;&#193;&#196;&#207; &#196;&#217;&#219;&#193;&#212;&#216;, &#193; &#212;&#207; &#197;&#211;&#204;&#201; &#207;&#206;&#193; &#213;&#214;&#197;
// &#208;&#207;&#205;&#197;&#210;&#204;&#193;, &#206;&#207; &#197;&#221;&#197; &#215;&#193;&#204;&#209;&#197;&#212;&#211;&#209;, &#212;&#207; &#196;&#217;&#219;&#193;&#212;&#216; &#197;&#202; &#215;&#211;&#197; &#214;&#197; &#215;&#210;&#197;&#196;&#206;&#207;
breath () ;
...
}

void emualtor::tick ()
{
for (std::list<object*>::iterator it = objects.begin () ;
it != objects.end () ; ++it) it->process () ;
}

&#254;&#197;&#210;&#197;&#218; RTTI &#205;&#207;&#214;&#206;&#207; &#212;&#193;&#203;&#214;&#197; &#215;&#217;&#209;&#211;&#206;&#201;&#212;&#216; &#204;&#197;&#212;&#193;&#192;&#212; &#204;&#201; &#207;&#194;&#223;&#197;&#203;&#212;&#217;, &#196;&#217;&#219;&#193;&#212;.
&#237;&#207;&#214;&#206;&#207; &#201; &#196;&#210;&#213;&#199;&#201;&#197; &#208;&#193;&#212;&#212;&#197;&#210;&#206;&#217; &#208;&#210;&#201;&#205;&#197;&#206;&#209;&#212;&#216; &#203;&#207;&#206;&#197;&#222;&#206;&#207;.

> ??? &#212;&#213;&#212; &#209; &#206;&#197; &#196;&#207;&#199;&#193;&#206;&#209;&#192;, &#205;&#207;&#214;&#206;&#193; &#196;&#197;&#212;&#193;&#204;&#216;&#206;&#166;&#219;&#197;?
> &#215;&#218;&#193;&#199;&#193;&#204;&#166;-&#212;&#207; &#205;&#197;&#212;&#193; &#195;&#201;&#200; List''&#166;&#215;, Process''&#166;&#215; - &#213;&#208;&#210;&#207;&#211;&#212;&#201;&#212;&#201; &#211;&#207;&#194;&#166; &#214;&#201;&#212;&#212;&#209;, &#221;&#207;&#194;
> &#206;&#193;&#208;&#210;&#201;&#203;&#204;&#193;&#196;, &#203;&#207;&#204;&#201; &#194;&#213;&#196;&#213; &#211;&#212;&#215;&#207;&#210;&#192;&#215;&#193;&#212;&#201; &#207;&#194;&#164;&#203;&#212;&#201;, &#206;&#197; &#196;&#207;&#196;&#193;&#215;&#193;&#212;&#201; &#203;&#207;&#214;&#197;&#206; &#215;&#210;&#213;&#222;&#206;&#213; &#215;
> &#203;&#207;&#206;&#212;&#197;&#202;&#206;&#197;&#210;&#201;...

&#247;&#207;&#212; &#211; &#198;&#193;&#194;&#210;&#201;&#203;&#207;&#202; &#212;&#217; &#201; &#194;&#213;&#196;&#197;&#219;&#216; &#211;&#207;&#218;&#196;&#193;&#215;&#193;&#212;&#216; &#207;&#194;&#223;&#197;&#203;&#212;&#217; &#222;&#197;&#210;&#197;&#218; &#215;&#217;&#218;&#207;&#215; &#205;&#197;&#212;&#207;&#196;&#193;
&#198;&#193;&#194;&#210;&#201;&#203;&#201;, &#203;&#207;&#212;&#207;&#210;&#217;&#202; &#211;&#193;&#205; &#215;&#211;&#197; &#196;&#207;&#194;&#193;&#215;&#201;&#212; &#215; &#206;&#213;&#214;&#206;&#217;&#197; &#211;&#208;&#201;&#211;&#203;&#201;. &#243;&#193;&#205;&#217;&#202; &#212;&#213;&#208;&#207;&#202; &#215;&#193;&#210;&#201;&#193;&#206;&#212;
(&#212;&#193;&#203; &#196;&#197;&#204;&#193;&#212;&#216; &#206;&#197; &#206;&#193;&#196;&#207;, &#208;&#210;&#207;&#211;&#212;&#207; &#201;&#204;&#204;&#192;&#211;&#212;&#210;&#193;&#195;&#201;&#209;), &#213; emulator &#197;&#211;&#212;&#216; &#205;&#197;&#212;&#207;&#196;

object* emulator::create_bird () {
object* o = new bird ();
objects.push_back (o) ;
return o ;
}

&#240;&#207; &#200;&#207;&#210;&#207;&#219;&#197;&#205;&#213; &#203;&#207;&#206;&#197;&#222;&#206;&#207; &#206;&#193;&#196;&#207; &#196;&#197;&#204;&#193;&#212;&#216; &#219;&#193;&#194;&#204;&#207;&#206;. &#225; &#215;&#207;&#207;&#194;&#221;&#197; &#206;&#193;&#196;&#207; &#208;&#210;&#207;&#222;&#201;&#212;&#193;&#212;&#216; &#208;&#210;&#207; &#208;&#193;&#212;&#212;&#197;&#210;&#206;&#217;
&#208;&#210;&#207;&#197;&#203;&#212;&#201;&#210;&#207;&#215;&#193;&#206;&#201;&#209;.

--
Best regards, | homepage: http://www.mindon.ne...
Oleg Grodzevich | e-mail: illinar@mindon.net | ICQ: 37500662