- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
template <class T>
class autoptr
{
private:
T * _ptr;
public:
autoptr()
{
_ptr = 0;
}
autoptr( T * ptr )
{
_ptr = ptr;
}
~autoptr()
{
if(_ptr) delete _ptr;
}
operator T * ()
{
return _ptr;
}
T * operator -> ()
{
return _ptr;
}
T * get()
{
T *ret = _ptr;
_ptr = 0;
return ret;
}
};
template <class T>
class autoptr_mas
{
// ...
LispGovno 01.04.2013 16:44 # 0
по всему видно считал себя умней всех
Верный призрак:
bormand 01.04.2013 16:54 # +3
> if(_ptr) delete _ptr;
Тоже бессмысленно и беспощадно.
neeedle 02.04.2013 04:26 # 0
bormand 02.04.2013 05:10 # 0
neeedle 02.04.2013 08:51 # +4
В идеале должно быть так:
defecate-plusplus 01.04.2013 16:49 # +2
так ведь std::auto_ptr должен быть задепрекачен, буста нет, c++11 нет, а кому охота пользоваться задепрекаченными в будущем классами? свой то вот он, никто не посмеет, всегда будет актуален!
bormand 01.04.2013 16:54 # +7
bormand 01.04.2013 16:57 # +3
A: Вот так:
LispGovno 01.04.2013 19:11 # 0
defecate-plusplus 01.04.2013 19:46 # +1
бдыщ
LispGovno 01.04.2013 19:52 # 0
bormand 02.04.2013 05:11 # +1
LispGovno 02.04.2013 08:03 # +1
defecate-plusplus 01.04.2013 17:07 # +1
bormand 01.04.2013 17:24 # +2
vse_govno 01.04.2013 17:08 # +6
absolut 05.04.2013 07:24 # +1
vistefan 01.04.2013 18:18 # 0
defecate-plusplus 01.04.2013 18:23 # +2
считай, что там стоит nullptr/NULL, если так будет понятней
Xom94ok 01.04.2013 19:07 # +3
roman-kashitsyn 01.04.2013 20:47 # +2
LispGovno 01.04.2013 21:39 # +2
Xom94ok 02.04.2013 08:23 # +4
bormand 02.04.2013 05:13 # +1
454 24.08.2021 21:36 # 0