Из c ++ 11 мы можем вызвать конструктор из другого конструктора.Таким образом, вместо определения конструктора копирования мы можем вызывать конструктор каждый раз?Как в этом фрагменте кода:
class MyString
{
private:
char *ptr;
int m_length;
public:
MyString(const char *parm = nullptr) : m_length(0), ptr(nullptr)
{
if (parm)
{
m_length = strlen(parm) + 1;
ptr = new char[m_length];
memcpy(ptr, parm, m_length);
}
}
MyString(const MyString &parm) : MyString(parm.ptr)
{
}
};
Есть ли какие-либо негативные последствия для этого подхода?Есть ли преимущество написания традиционного конструктора копий?