gpt4 book ai didi

c++ - 从复制构造函数调用构造函数

转载 作者:行者123 更新时间:2023-11-28 01:25:44 25 4
gpt4 key购买 nike

从 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)
{

}
};

这种方法有什么不良影响吗?编写传统的复制构造函数有什么优势吗?

最佳答案

So instead of defining copy constructor can we call the constructor every time?

是的,你可以

委托(delegate)构造函数的优点之一是通过在某些可能需要完整参数集的构造函数中进行公共(public)初始化来避免代码重复。

Is there any advantage of writing traditional copy constructor?

构造委托(delegate)的能力与定义复制构造函数或任何其他特殊构造函数的需要无关。如有必要,您需要定义它们。

关于c++ - 从复制构造函数调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53954356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com