.


:




:

































 

 

 

 





++ 2 : , . , .. . .

void f()

{

//...

class X

{

...

}

X s2;

}

X s3; //

, .

void f2() // ,

{ double x,y;

class X

{

... //x,y

}

]

.

. . ++ , . . , .

, , . .

class StrStack

{

class Link

{

class xste;

Link *next;

public:

Link(char *.ste,Link *_next):str(_str),next(_next)

{} //

char * GetStr(); //

Link *GetNext {return next;}

};

Link *head;

public:

StrSrack():head(0){}

~StrStack();

void Add(char *s);

char* Get();

int Empty() const {return!head;}

StrStack &operator+(char *str)

{

Add(str);

return *this;

}

};

 

//

inline char* StrStack::Link::GetStr()

{

return str;

}

 

//

StrStack::~StrStack()

{

while(!Empty())

{

Get();

}

}

 

void StrStack:: Add(char *str)

{

Link *p=new Link(str,head);

head =p;

}

 

char *StrStack:: Get()

{

if(!head) return ;

char *str=head->getstr();

Link *p=head;

head=head->getnext();

delete p;

}

////

void main()

{

StrStack s;

s.Add();

s.Add();

s+-;

...

while(!s.Empty())

return s.get();

}


 

- .

. . . , .

class Y

{

public:

int x,y;

};

2 : , Y::Y(){}. : Y (const &y);. . , return.

. . . (shallow copy).

( ) . , - . , .

- ,

- ,

- ,

 

 

 


 





:


: 2016-07-29; !; : 536 |


:

:

, .
==> ...

1486 - | 1349 -


© 2015-2024 lektsii.org - -

: 0.014 .