Вы находитесь на странице: 1из 4

, .

.
:
: 27.01.2012
, /++
, . .
- .
. .
.
, ,
. : "
? ". ,
.
PVS-Studio . , ,
eMule:
class CSlideBarGroup
{
public:
CSlideBarGroup(CString strName,
INT iIconIndex, CListBoxST* pListBox);
CSlideBarGroup(CSlideBarGroup& Group);
...
}

CSlideBarGroup::CSlideBarGroup(CSlideBarGroup& Group)
{
CSlideBarGroup(
Group.GetName(), Group.GetIconIndex(), Group.GetListBox());
}
. ,
CSlideBarGroup(

Group.GetName(), Group.GetIconIndex(), Group.GetListBox());


. .
CSlideBarGroup.
, .
, . .
, . , -
. . , . :)
, , :
CSlideBarGroup::CSlideBarGroup(CSlideBarGroup& Group)
{
this->CSlideBarGroup::CSlideBarGroup(
Group.GetName(), Group.GetIconIndex(), Group.GetListBox());
}
:
CSlideBarGroup::CSlideBarGroup(CSlideBarGroup& Group)
{
new (this) CSlideBarGroup(
Group.GetName(), Group.GetIconIndex(),
Group.GetListBox());
}

.
, , ,
.

, ,
!
- ( ),
, . , ,
.
class SomeClass
{
int x,y;

public:
SomeClass() { new (this) SomeClass(0,0); }
SomeClass(int xx, int yy) : x(xx), y(yy) {}
};
. ,
.
.
, (
StackOverflow):
class Base
{
public:
char *ptr;
std::vector vect;
Base() { ptr = new char[1000]; }
~Base() { delete [] ptr; }
};

class Derived : Base


{
Derived(Foo foo) { }
Derived(Bar bar) {
new (this) Derived(bar.foo);
}
}
"new (this) Derived(bar.foo);", Base
. . 'ptr'
. .
std::vector, .
. .

.
, , , -

. !
.
:
class CSlideBarGroup
{
void Init(CString strName, INT iIconIndex,
CListBoxST* pListBox);
public:
CSlideBarGroup(CString strName, INT iIconIndex,
CListBoxST* pListBox)
{
Init(strName, iIconIndex, pListBox);
}
CSlideBarGroup(CSlideBarGroup& Group)
{
Init(Group.GetName(), Group.GetIconIndex(),
Group.GetListBox());
}
...
};
P.S. C++11 ()
++11 (
). ,
. :
class MyClass {
std::string m_s;
public:
MyClass(std::string s) : m_s(s) {}
MyClass() : MyClass("default") {}
};

Вам также может понравиться